SQL Server MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SQL Server MCPlist tables in AdventureWorks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SQL Server MCP
A read-only MCP (Model Context Protocol) server for SQL Server database introspection. Use with Claude Desktop to let Claude explore and query your SQL Server databases.
Features
List databases, tables, views, stored procedures, and functions
Get object definitions (DDL/source code)
Execute read-only SELECT queries
Search for objects across databases
Read-only by design - all mutation queries are blocked
Related MCP server: mssql-mcp
Installation
# Clone the repo
git clone https://github.com/millelog/sql-server-mcp.git
cd sql-server-mcp
# Install in a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .Claude Desktop Configuration
Add to your Claude Desktop config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sql-server": {
"command": "python",
"args": ["-m", "sql_server_mcp"],
"cwd": "C:\\path\\to\\sql-server-mcp",
"env": {
"MSSQL_HOST": "your-server",
"MSSQL_USER": "your-username",
"MSSQL_PASSWORD": "your-password",
"MSSQL_DATABASE": "master"
}
}
}
}Restart Claude Desktop after updating the config.
Configuration Options
Variable | Description | Default |
| SQL Server hostname |
|
| SQL Server port |
|
| Username | - |
| Password | - |
| Default database |
|
| Full connection string (overrides above) | - |
| Maximum rows returned |
|
| Query timeout (seconds) |
|
| Comma-separated allowlist | - |
| Comma-separated blocklist | - |
Available Tools
Tool | Description |
| List all accessible databases |
| List tables in a database |
| Get CREATE TABLE DDL |
| Get column metadata |
| Get index information |
| Get foreign key relationships |
| List views in a database |
| Get CREATE VIEW DDL |
| List stored procedures |
| Get CREATE PROCEDURE DDL |
| Get procedure parameters |
| List user-defined functions |
| Get CREATE FUNCTION DDL |
| Run read-only SELECT queries |
| Get sample rows from a table |
| Search for objects by name |
| Search within object definitions |
| Get database schema summary (object counts, size) |
Development
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src/sql_server_mcpLicense
MIT
Available Tools
20 toolsexecute_queryB
Execute a read-only SELECT query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The SELECT query to execute | |
| database | No | Database to query | |
| max_rows | No | Maximum rows to return (default: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Only states 'read-only', but lacks details on error handling, concurrency, or size limits. With no annotations, description carries full burden but provides minimal behavior info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy, front-loads key purpose. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes purpose but lacks context on expected query syntax, response format, and potential side effects. For a query execution tool with no output schema, more details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions; description adds no extra meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'execute' and resource 'read-only SELECT query', distinguishing from sibling tools like get_* and list_* which are more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings. It does not mention alternatives or when not to use, leaving the agent to infer from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_function_definitionC
Get the CREATE FUNCTION definition
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| function | Yes | Function name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as read-only nature, required permissions, or error conditions. The agent must infer that it is a read operation from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence that front-loads the main action. However, it is so brief that it sacrifices important detail, which limits its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain what the tool returns (e.g., full DDL, signature only). It does not, leaving the agent with incomplete information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond what is in the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the CREATE FUNCTION definition, which is a specific verb and resource. However, it does not explain what 'definition' means (e.g., SQL source, metadata), and while it distinguishes from siblings like get_procedure_definition, it could be more explicit about the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_functions or get_procedure_definition. The sibling tools are listed but the description offers no criteria for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_procedure_definitionB
Get the CREATE PROCEDURE definition
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| procedure | Yes | Procedure name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as whether the tool requires permissions, what happens if the procedure doesn't exist, or the exact format of the returned definition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, which is efficient. However, it is too minimal, lacking necessary details, so it does not fully earn its place despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only a two-word description, the tool's output (the full CREATE PROCEDURE text) is not explained. For a simple tool with required parameters, the description should clarify what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters (database and procedure). The description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the CREATE PROCEDURE definition' concisely and specifically identifies the tool's action (get) and resource (CREATE PROCEDURE definition). It clearly distinguishes from siblings like 'get_function_definition' or 'get_procedure_parameters'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives (e.g., when to use 'get_function_definition' instead). No prerequisites or context for correct usage are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_procedure_parametersB
Get parameter information for a stored procedure
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| procedure | Yes | Procedure name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get', implying a read-only operation without side effects. However, it does not disclose any behavioral traits such as permission requirements, return format, or potential performance implications, leaving the agent partially uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It efficiently conveys the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the tool is simple with only two parameters. The description is minimally adequate but does not mention return structure, potential error conditions, or limitations. For a straightforward tool, this is acceptable but not exemplary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions in the input schema. The tool description adds no additional meaning beyond what the schema already provides, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('parameter information for a stored procedure'). It distinguishes from sibling tools like 'get_procedure_definition' which retrieves the entire procedure definition, not just parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites or when to prefer it over other 'get' tools such as 'get_procedure_definition' or 'get_function_definition'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sample_dataB
Get sample rows from a table
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| table | Yes | Table name (can include schema) | |
| rows | No | Number of rows to return (default: 10) | |
| random | No | Return random sample instead of first N rows |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits like whether sampling is random by default, performance implications, or that the tool is read-only. The schema covers parameter details, but the description lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no waste. However, its brevity means it could benefit from slight expansion for better clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description is incomplete. It does not explain the nature of the sample (e.g., first vs random), output format, or side effects, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented. The description adds no additional meaning beyond what the schema provides, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get sample rows from a table' uses a specific verb and resource, clearly indicating the tool's function. It effectively distinguishes from sibling tools like execute_query or get_table_columns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus siblings. The purpose is implied, but no guidance is given on context or exclusions, such as preferring this over execute_query for quick inspection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_overviewC
Get an overview of a database schema (counts of objects, size info)
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It implies a read-only operation but does not explicitly state non-destructiveness, performance impact, or authorization requirements. The description gives minimal behavioral insight beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words, making it concise. However, it lacks structure (e.g., separating purpose from return info), but it earns a 4 for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description should explain what the return format looks like. It mentions 'counts of objects, size info' but is vague. The tool is simple, but the explanation is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the only parameter 'database' has a description). The description adds no extra meaning beyond 'Database name'; baseline 3 is appropriate since the schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'database schema', and specifies the kind of information returned (counts of objects, size info). It distinguishes itself from sibling tools like list_tables or get_table_columns by focusing on a high-level overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as list_databases or get_table_definition. There are no explicit exclusions or context on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_columnsC
Get detailed column information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| table | Yes | Table name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It labels the operation as 'get' (read-only) but omits details like performance impact, required permissions, or whether the output is paginated. The minimal description leaves the agent uncertain about safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded. However, it could be slightly more descriptive without adding fluff. It earns its place but misses an opportunity to briefly clarify output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should hint at what 'detailed column information' includes (e.g., data type, nullability). It fails to do so, leaving a significant gap for a tool that returns structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents 'database' and 'table'. The description adds no extra meaning to these parameters; it remains vague about how 'detailed column information' relates to the inputs. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets 'detailed column information for a table', which is a specific verb+resource. While it differentiates from siblings like 'get_table_definition' (DDL) or 'get_view_columns' (view), it could explicitly contrast with these to achieve a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'get_table_definition' or 'get_sample_data'. The agent has no criteria to prefer this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_definitionB
Get the full CREATE TABLE definition for a table
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| table | Yes | Table name (can include schema, e.g., 'dbo.Users') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'get', implying read-only, but fails to disclose behaviors like permissions needed, error handling, or whether the result is a DDL string or a structured object.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the purpose without any extraneous words. It is front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema, the description is adequate but could be more complete by specifying the return type (e.g., 'returns the DDL statement as a string') or noting that it requires table name only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters ('database', 'table') with 100% coverage. The description adds no additional semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the 'full CREATE TABLE definition for a table', using a specific verb and resource. It is distinct from sibling tools that target functions, procedures, or views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'get_table_columns' or 'get_schema_overview'. There is no mention of prerequisites, exclusions, or best practices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_indexesC
Get index information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| table | Yes | Table name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It indicates a read operation but provides no details about the return structure, permissions, data scope, or potential side effects. This is insufficient for an agent to understand the tool's inner workings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two words, with no fluff. It is front-loaded and to the point. However, conciseness sacrifices substance, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity but lack of output schema and 20 sibling tools, the description is too brief. It does not specify what index information is returned (e.g., columns, uniqueness, type), leaving the agent unsure if this tool meets its needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both parameters have descriptions ('Database name', 'Table name (can include schema)'). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get index information for a table' clearly states the tool's function with a specific verb and resource. It distinguishes from sibling tools like get_table_columns or get_table_definition by focusing on indexes, though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool over alternatives (e.g., other index-related tools like get_table_definition). There is no mention of prerequisites or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_relationshipsA
Get foreign key relationships for a table
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| table | Yes | Table name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description is minimal, offering no information about side effects, permissions, or return format. The single sentence only restates the tool's purpose without adding behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no wasted words, effectively communicating the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description is adequate but lacks details on the structure of returned relationships (e.g., referenced tables/columns), which could hinder an agent's complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with each parameter described. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get foreign key relationships for a table' clearly states the action and target resource, distinguishing it from sibling tools like get_table_columns or get_table_definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives; usage is implied by the specific function of retrieving foreign key relationships, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_view_columnsC
Get column information for a view
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| view | Yes | View name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. It implies a read-only operation but does not describe what 'column information' entails, what fields are returned, or any potential limitations (e.g., only returns columns defined in the view, not underlying tables). The description is too minimal to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (6 words), which is concise but arguably too brief. It contains no waste, yet it misses the opportunity to provide essential context. It is not structured with a clear front-loading of key information because it lacks substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description should explain what the tool returns (e.g., column names, types, nullable flags). It does not. The tool is part of a suite of metadata tools, and this description is incomplete compared to potential more detailed siblings. The absence of behavioral details makes it insufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions. The description adds no extra meaning beyond what is in the schema. Since schema coverage is high, a baseline of 3 is appropriate. No additional semantic enrichment is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get column information for a view' which is a specific verb and resource. However, it does not differentiate from sibling tools like 'get_table_columns' or specify what kind of column information (e.g., names, types, constraints). The purpose is clear but not precise enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling list includes many similar 'get_*' tools (e.g., get_table_columns, get_view_definition) but the description offers no context to help the agent select the appropriate one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_view_definitionB
Get the CREATE VIEW definition
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| view | Yes | View name (can include schema) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only says 'Get the CREATE VIEW definition'. It does not disclose what the tool returns (e.g., SQL text), what happens on error, or any side effects. This is insufficient for an agent to understand behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence) and front-loaded, but it could include more useful details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what the tool returns (e.g., the CREATE VIEW statement text). It does not, leaving the agent uncertain about the response format. For a simple 2-parameter tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (database and view name) with 100% coverage. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'CREATE VIEW definition'. It differentiates from sibling tools like get_view_columns or get_table_definition by specifying it's for the CREATE VIEW definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_view_columns or get_table_definition. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_databasesB
List all accessible databases on the SQL Server
| Name | Required | Description | Default |
|---|---|---|---|
| include_system | No | Include system databases (master, model, msdb, tempdb) | |
| name_pattern | No | Filter databases by name pattern (SQL LIKE syntax) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral details such as permissions, return format, or side effects. 'Accessible databases' implies filtering but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main purpose. It could be expanded with minimal effort but is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two optional parameters and no output schema. The description adequately covers the purpose but lacks information about return structure or behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described inline. The tool description adds no additional meaning beyond the schema, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all accessible databases on the SQL Server', using a specific verb and resource. It is distinct from sibling tools like list_tables and list_schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_tables or execute_query. No exclusions or usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_functionsB
List all user-defined functions in a database
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| schema | No | Filter by schema name | |
| function_type | No | Filter by function type: 'scalar', 'table', or 'all' | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action (list), implying a read-only operation, but lacks details on ordering, pagination, permissions, or scope (e.g., across all schemas). This is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly conveys the tool's purpose with no unnecessary words. It is perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema), the description is adequate but could be improved by mentioning what the output contains (e.g., function names and metadata) or any prerequisites. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds no additional meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'user-defined functions in a database'. It is specific but does not differentiate from sibling tools like list_procedures or list_views, resulting in a score of 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing user-defined functions, but provides no explicit guidance on when to use this tool vs alternatives like list_procedures. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_proceduresC
List all stored procedures in a database
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| schema | No | Filter by schema name | |
| name_pattern | No | Filter procedures by name pattern | |
| include_system | No | Include system procedures |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only says 'list all stored procedures'. It does not mention that include_system defaults to false, what happens when database is omitted, or whether results are paginated. Key behavioral details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks necessary details. It earns its place but could be more informative without being wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of 4 parameters, a missing output schema, and 19 sibling tools, the description is insufficiently complete. It does not explain filtering options or the effect of optional parameters, leaving ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters have descriptions in the schema (100% coverage), so the description does not need to add parameter details. The baseline of 3 applies as the description offers no additional semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists stored procedures, but doesn't explicitly differentiate from sibling list tools like list_functions or list_tables. However, the combination of name and description is specific enough for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not indicate when to use this tool over alternatives such as list_functions, list_tables, or search_definitions, nor does it mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schemasB
List all schemas in a database with object counts
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it lists schemas with counts. It does not disclose permissions required, whether it modifies data, or handle large results. Minimal behavioral disclosure beyond function name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information. No wasted words. Could benefit from additional context, but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema provided; description partially addresses return by mentioning object counts. Missing details on ordering, pagination, or error cases. Adequate for a simple list tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter 'database' with description 'Database name' is already in schema. Schema coverage is 100%, so baseline 3. Description adds no extra context beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists all schemas in a database with object counts. Verb and resource are explicit, and it differentiates from sibling tools like list_tables and list_databases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_schema_overview or list_databases. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesC
List all tables in a database
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name (uses default if not specified) | |
| schema | No | Filter by schema name | |
| name_pattern | No | Filter tables by name pattern (SQL LIKE syntax) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It fails to disclose any behavioral traits, such as read-only nature, scope of returned data, or whether filters affect results. Only states 'List all tables'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence) and front-loaded. However, it omits important details like filtering and output format, making it under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 optional parameters and no output schema, the description is incomplete. It does not explain what is returned (table names, metadata), how filters work, or any default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema provides; it merely says 'in a database'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'all tables in a database'. While it distinguishes the tool from siblings like 'list_views' by name, it does not explicitly differentiate behavior or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_table_columns' or 'list_views'. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_viewsC
List all views in a database
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name | |
| schema | No | Filter by schema name | |
| name_pattern | No | Filter views by name pattern |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'List all views' without disclosing any behavioral traits (e.g., read-only nature, pagination, return format, or effect of filters). The minimal text adds no behavioral context beyond the function name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence with no redundant words. However, it is so minimal that it borders on under-specification, lacking any structural elements like bullet points or context that would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three optional filters and no output schema, yet the description does not explain how filters interact, what the return format is, or any edge cases. For a simple listing tool, more context is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no additional meaning to the parameters beyond what the schema provides, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and the resource ('all views in a database'), making the tool's purpose unambiguous. However, it does not differentiate from sibling tools like list_tables or list_functions, which follow the same pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not specify when to use this tool over alternatives such as get_view_definition or list_tables, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_definitionsC
Search within object definitions (procedure/function/view source code)
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Text pattern to search for | |
| database | No | Limit search to specific database | |
| object_types | No | Object types to search: 'view', 'procedure', 'function' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose behavioral traits such as case sensitivity, wildcard support, permission requirements, or output format. This is insufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous text. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and many sibling tools, the description lacks details on return values, behavior, and how it differs from similar tools. It is incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches within object definitions (source code of procedures, functions, views). It uses a specific verb and resource, and the scope (source code) is distinct from sibling tools like search_objects or get_procedure_definition, though it doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_objects or individual definition retrieval tools. The description does not mention exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_objectsB
Search for database objects by name across all databases
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Name pattern to search for (SQL LIKE syntax) | |
| object_types | No | Object types to search: 'table', 'view', 'procedure', 'function' | |
| database | No | Limit search to specific database |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions scope ('across all databases') but no details on read-only behavior, performance, case sensitivity, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and scope, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 3 parameters, the description is too sparse. Does not mention result format, search scope behavior, or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so description adds minimal value. Provides context that search is by name, but does not elaborate beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb and resource: 'Search for database objects by name across all databases'. Distinguishes from siblings like search_definitions by focusing on name-based search across databases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_definitions or list_tables. Does not specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
20 tool updates
v0.1.0- First observed
execute_query - First observed
get_function_definition - First observed
get_procedure_definition - First observed
get_procedure_parameters - First observed
get_sample_data - First observed
get_schema_overview - First observed
get_table_columns - First observed
get_table_definition - First observed
get_table_indexes - First observed
get_table_relationships - First observed
get_view_columns - First observed
get_view_definition - First observed
list_databases - First observed
list_functions - First observed
list_procedures - First observed
list_schemas - First observed
list_tables - First observed
list_views - First observed
search_definitions - First observed
search_objects
TDQS
Every tool targets a distinct resource and action, such as listing vs. getting definitions, columns, or relationships. No two tools have overlapping purposes; even similar operations like get_table_definition vs get_table_columns are clearly separated by what they return.
All tool names follow a consistent verb_noun pattern using snake_case, with verbs like execute, get, list, and search. The naming is predictable and uniform across the entire set.
20 tools is well-scoped for a SQL Server schema exploration and querying server. Each tool covers a specific need without redundancy, and the count is appropriate for the domain's complexity.
The tool set provides comprehensive coverage for read-only database operations: listing objects, retrieving definitions, columns, indexes, relationships, sample data, and executing queries. It also includes search capabilities. There are no obvious gaps for the intended read-only scope.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- dataOAuthco.thinair
Read-only PostgreSQL, MySQL, SQL Server access via MCP — 24 dialect-aware hosted tools.
The HubSpot MCP Server acts as a bridge that enables AI assistants and Large Language Models to securely interact with HubSpot CRM data through natural conversation, without requiring users to understand complex API structures. It provides read-only access to standard CRM objects (contacts, companies, deals, tickets, products, invoices, and more) and their associations, secured via OAuth 2.0, allowing AI agents to perform tasks like summarizing deals, fetching company updates, and looking up record changes.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server for Microsoft SQL Server integration that enables users to query, monitor, and analyze databases directly through Claude. It supports schema exploration, performance analysis, and optional write operations via natural language commands.91MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for Microsoft SQL Server that retrieves connection details from AWS Secrets Manager, enabling database exploration and querying via natural language.1211MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables Claude to query, monitor, and analyze SQL Server databases, with support for schema exploration, performance analysis, and optional write operations.331MIT
- AlicenseBqualityCmaintenanceRead-only MCP server for exploring and analyzing SQL Server objects (tables, views, triggers, stored procedures) from Claude Code.8907MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/millelog/sql-server-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server