Public leaderboard

Public assessment

f4ww4z/mcp-mysql-server (@f4ww4z/mcp-mysql-server)

f4ww4z-mcp-mysql-server · v1.0.0 · scanned

What changed in the harness

Selection accuracy 100→100, token cost up 25%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

27.4 / 30

27.4 out of 30
03Economics

20.0 / 20

20.0 out of 20
04Discoverability

8.3 / 20

8.3 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

5 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
connect_db
name_restates_behavior params_unexplained no_return_description
Opens a connection to a MySQL server using the given host and user credentials, and selects the specified 'database' (the schema/database name to use once connected) as the active database. Returns a connection handle used by subsequent query/execute calls, or throws an error if authentication or connection fails.
query
name_restates_behavior no_return_description
Runs a read-only SQL SELECT statement against the currently connected MySQL database, optionally binding values from the 'params' array to '?' placeholders in the SQL for safe parameterization. Returns the matched rows as an array of row objects (empty array if no rows match).
execute
no_return_description
Runs a data-modifying SQL statement (INSERT, UPDATE, or DELETE) against the currently connected MySQL database, optionally binding values from the 'params' array to '?' placeholders in the SQL for safe parameterization. Returns execution metadata such as the number of affected rows and, for INSERT statements, the generated insert ID.
list_tables
name_restates_behavior no_return_description
Queries the information schema of the currently connected MySQL database to enumerate its tables. Returns an array of table name strings; the array is empty if the database has no tables.
describe_table
params_unexplained no_return_description
Runs a DESCRIBE query against the table named in the required 'table' parameter (the exact table name in the current database) to inspect its schema. Returns an array of column descriptors, each including the column name, data type, nullability, key type, and default value.

Selection evidence

Confusable tool pairs.

1 pair where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
list_tables describe_table low list_tables takes no arguments and returns all table names, while describe_table requires a specific table name to get its structure; a task like 'show me the tables' vs 'show me the table structure' is distinguishable enough that confusion is unlikely, though an ambiguous request like 'show me info about the database tables' could plausibly trigger either.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard