Elekto MCP for SQL Server
NUGET · ELEKTO.MCP.SQL
Read-only SQL Server introspection and querying: schema, definitions, dependencies and data.
Available components
Last scanned (23 hours ago)
Scores higher than 96% of NuGet servers
Category Databases
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to elekto-com-br/elekto-mcp-sql). View diagnostics → Pass
- Clear OSI-approved license (GPL-3.0-or-later).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3503 tokens (~166/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management40
- Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 15 Oct 26 −4
- Malware scan: pass → unverified ▼ security
- Provenance: unverified → pass ▲ security
- The attested source repository moved: elekto-com-br/elekto-mcp-sql security
- Package version: 2.3.2 → 2.3.4 functional
- 14 Oct 26 +5
- Stability: unverified → 0.33 ▲ functional
- 4 Oct 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Oct 2026 · Analysed nuget/Elekto.Mcp.Sql@2.3.4
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | nuget |
| Reason | Verified |
| Discovered via | GitHub artifact attestations |
| Source repo | elekto-com-br/elekto-mcp-sql |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/elekto-com-br/elekto-mcp-sql/.github/workflows/publish.yml@refs/tags/v2.3.4 |
| Rekor log index | 3268122498 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha256:ec17f1bab1b6425fcfb2f5859d6fbfe5a221188ba2bd51669763c6ab60ccd9b7 |
Signer
| Signed as | Repository signature, names nuget.org |
|---|---|
| Subject | CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US |
| Issuer | CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US |
| Valid from | 23 Feb 2024 |
| Valid until | 18 May 2027 |
| Service index | https://api.nuget.org/v3/index.json |
| Owners | elekto |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
Registry declarations For information only
What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.
| Repository | https://github.com/elekto-com-br/elekto-mcp-sql |
|---|---|
| Repository type | git |
| Commit | 58cc327b4afd6706d0997ff07971ed179bf84675 |
| Project URL | https://github.com/elekto-com-br/elekto-mcp-sql |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_permissions Check login permissions ~156
Reports what the connected login can and cannot see in a database: identity, roles, effective permissions, server version and, for each group of tools, whether it sees everything ('complete'), only part ('partial') or nothing ('unavailable'), with the missing permission and the GRANT that adds it in this server version's syntax. Also reports 'write_access', so an account meant to be read-only can be verified rather than assumed. Call it when a listing looks short, a definition comes back hidden, get_database_overview reports incomplete visibility, or a tool fails with a permission error: SQL Server leaves out what a login cannot see without raising any error.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
No output schema declared.
No examples provided.
compare_schemas Compare two databases ~175
Compares the table and column structure of two configured databases, such as development and production: tables present in only one, columns present in only one, and columns whose type or nullability differ, each with its type_declaration so a difference reads as 'nvarchar(250) vs nvarchar(50)'. Use it to check a migration or detect drift. It compares tables and columns only, not views, code, indexes or data; to see one differing table in full, call get_table_schema on each database.
| Name | Type | Req | Description |
|---|---|---|---|
| source_database | string | yes | Source database name as registered in configuration. |
| source_schema | string | – | Source schema filter. Empty means every schema. |
| target_database | string | yes | Target database name as registered in configuration. |
| target_schema | string | – | Target schema filter. Empty means every schema. |
No output schema declared.
No examples provided.
find_columns Find columns by name ~187
Finds every table and, by default, every view holding a column whose name matches a pattern, with each column's type_declaration and nullability. Use it to answer 'which objects have this column?' before a rename, a widening or an impact review; to find objects by their own name use list_tables or list_views.
| Name | Type | Req | Description |
|---|---|---|---|
| column_pattern | string | yes | Part of a column name. A pattern without % matches anywhere in the name, so 'Date' finds ReferenceDate and AuxDate; add % yourself for a prefix or suffix match, as in 'Aux%'. Example: 'ReferenceDate' |
| database | string | yes | Name of the database as registered in the configuration. |
| include_views | boolean | – | Include views as well as tables. True by default. |
| schema | string | – | Restrict to one schema. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
generate_dependency_dot Dependency diagram (DOT) ~186
Generates a Graphviz DOT diagram of the dependencies between database objects: an arrow runs from each table, view, procedure or function to the object it depends on, through a foreign key or a reference in its code. Returns the DOT text in 'dot', ready for 'dot -Tsvg', and the same graph as 'nodes' (with node_kind) and 'edges' (with dependency_kind). Use it to draw the graph; for the edges alone use get_dependency_graph, and for what references a single table use get_table_usage. A whole database makes an unreadable diagram, so narrow it with schema. 'visibility' says when references from code are missing for lack of permission.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_data_profile Profile column data ~179
Profiles the columns of one table or view: null ratio, distinct count, minimum, maximum and most frequent values. Use it to learn how data is distributed without paging through rows with query_table. It reads actual row values and scans the table, so on a large table it can take a while; limit it to the columns you need.
| Name | Type | Req | Description |
|---|---|---|---|
| columns | string | – | Columns to profile as ONE comma-separated string, not a JSON array. Example: 'Source, Name'. Empty profiles every column. |
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Table schema. Empty means dbo. Example: 'Feeder' |
| table | string | yes | Table name, bare, with no schema prefix. |
| top_values | integer | – | Top frequent values to return per column (default 5). |
No output schema declared.
No examples provided.
get_database_overview Database overview ~118
Summarizes one database: real name, server and instance, connected login, counts of tables, views, procedures, functions and schemas, and allocated size in MB. Use it after list_databases to size up a database before exploring it; for the same figures per schema use get_schema_summary. Counts cover only what the login can see: 'visibility.complete' is false when SQL Server hides objects, and check_permissions then says which GRANT is missing.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
No output schema declared.
No examples provided.
get_dependency_graph Dependency graph ~129
Returns the dependency edges between database objects as data: foreign keys between tables, and references among views, procedures and functions. Use it to analyze dependencies programmatically; for a diagram use generate_dependency_dot, and for what references one table use get_table_usage. Fails, saying so, when the login cannot read sys.sql_expression_dependencies; without VIEW DEFINITION the module edges cover only modules the login can read.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_function_definition User function definition ~110
Returns the CREATE FUNCTION text of one user-defined function. Use it to read or review a function found with list_functions; this server never executes functions. A function the login can see but not read comes back with definition null and definition_visible false.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| function | string | yes | Function name, bare, with no schema prefix. |
| schema | string | – | Function schema. Empty searches every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_index_health Index health ~125
Reports index health by schema: duplicate index candidates, unused indexes and missing-index suggestions. Use it when reviewing indexing or slow queries; for one table's indexes use get_table_schema. Unused and missing indexes come from server DMVs, which reset when SQL Server restarts; without VIEW SERVER STATE they come back null and 'visibility.unavailable' says why, while duplicates are still reported.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_procedure_definition Stored procedure definition ~114
Returns the CREATE PROCEDURE text of one stored procedure. Use it to read or review a procedure found with list_procedures; this server never executes procedures. A procedure the login can see but not read comes back with definition null and definition_visible false.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| procedure | string | yes | Stored procedure name, bare, with no schema prefix. |
| schema | string | – | Procedure schema. Empty searches every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_schema_summary Schema summary ~115
Summarizes each schema of a database: counts of tables, views, procedures and functions, approximate rows and estimated data and index size. Use it to see where a database's weight lies before exploring or planning a refactoring; for whole-database totals use get_database_overview, and for the tables of one schema use list_tables.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
get_table_schema Table structure ~184
Returns the full structure of one table or view: columns with an unambiguous type_declaration (such as 'nvarchar(250)'), max_length_chars, every extended property, computed-column definitions and whether they are persisted; plus primary key, foreign keys, check and unique constraints, and indexes with key column order and declared key width. Call it before query_table to learn exact column names and types; for a view's SQL text use get_view_definition. max_length is the raw sys.columns value in BYTES, so reason about text length with type_declaration or max_length_chars.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Table schema. Empty searches every schema. Example: 'Feeder' |
| table | string | yes | Table name, bare, with no schema prefix. Example: 'GenericSecurity' |
No output schema declared.
No examples provided.
get_table_usage Table usage ~134
Lists everything that references one table: foreign keys to and from it, and the views, procedures and functions whose code uses it. Use it for impact analysis before changing a table; for the dependency graph of the whole database use get_dependency_graph. sql_module_usage is null when the login cannot read dependencies, and 'visibility' says when the list may be incomplete.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Table schema. Empty searches every schema. Example: 'Feeder' |
| table | string | yes | Table name, bare, with no schema prefix. |
No output schema declared.
No examples provided.
get_view_definition View definition ~129
Returns the CREATE VIEW text of one view together with its columns, in the same detail as get_table_schema. Use it to see how a view derives its data; for the objects it reads from use get_dependency_graph. A view the login can see but not read comes back with definition null and definition_visible false, which check_permissions explains.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | View schema. Empty searches every schema. Example: 'Feeder' |
| view | string | yes | View name, bare, with no schema prefix. |
No output schema declared.
No examples provided.
list_databases List configured databases ~94
Lists the logical database names this server is configured to reach, with each one's row limit and command timeout. Call it first: every other tool, starting with get_database_overview, takes one of these names as its 'database' argument. It reads only the server's configuration and never connects to SQL Server; when nothing is configured it answers ok: false with the file to create, where the server looked and an example.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_functions List user functions ~128
Lists the user-defined functions the login can see (scalar, inline table-valued and multi-statement table-valued), with the same complexity metrics and visibility flags as list_procedures. Use it to find functions; for one function's text use get_function_definition. SQL Server leaves out functions the login has no permission on without an error: get_database_overview says whether that happens, check_permissions why.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
list_procedures List stored procedures ~157
Lists the user stored procedures the login can see, with line count, join count and number of referenced objects as rough complexity metrics. Use it to find procedures and pick the complex ones; for one procedure's text use get_procedure_definition. definition_visible is false, and the metrics null, for a procedure whose text is hidden from the login; referenced_object_count is null when the login cannot read dependencies. SQL Server leaves out procedures the login has no permission on without an error: get_database_overview says whether that happens, check_permissions why.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
list_schemas List schemas ~71
Lists the user schemas of a database with their owners, leaving out system schemas. Use it to learn the names the 'schema' filter of the other tools accepts; for object counts and sizes per schema use get_schema_summary instead.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
No output schema declared.
No examples provided.
list_tables List tables ~172
Lists user tables with schema, approximate row count, data and index size in MB, and creation and modification dates. Use it to find tables by name or schema and to spot the large ones; to find tables by a column they hold use find_columns, and for one table's columns and keys use get_table_schema. Narrow large databases with schema and name_pattern.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| name_pattern | string | – | Filter by table name. A pattern without % matches anywhere in the name, so 'Security' finds GenericSecurity; add % yourself for a prefix or suffix match, as in 'Anbima%'. Empty means every table. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
list_views List views ~129
Lists user views with their schema. Use it to find views by name or schema; for a view's columns and SQL text use get_view_definition, and for tables use list_tables. Narrow large databases with schema and name_pattern.
| Name | Type | Req | Description |
|---|---|---|---|
| database | string | yes | Name of the database as registered in the configuration. |
| name_pattern | string | – | Filter by view name. A pattern without % matches anywhere in the name; add % yourself for a prefix or suffix match. Empty means every view. |
| schema | string | – | Filter by schema name. Empty means every schema. Example: 'Feeder' |
No output schema declared.
No examples provided.
query_table Query a table or view ~457
Runs a SELECT on one table or view, with optional column list, filter, ordering, grouping, aggregates (COUNT, SUM, AVG, MIN, MAX), pagination and random sampling, and returns the rows in an object with row_count and a measured 'truncated' flag, so a short result is never mistaken for a complete one. Rows are capped by the database's max_query_rows. Call get_table_schema first for exact column names; for null ratios, distinct counts and frequent values use get_data_profile instead of paging through rows. Reads actual data; never runs INSERT, UPDATE, DELETE or procedures.
| Name | Type | Req | Description |
|---|---|---|---|
| aggregates | string | – | Aggregates as ONE comma-separated string of FUNC(column) [AS alias], with FUNC one of COUNT, SUM, AVG, MIN, MAX. Only a bare column name is allowed inside the parentheses. Example: 'COUNT(*) AS Total… |
| columns | string | – | Columns as ONE comma-separated string, not a JSON array. Example: 'ReferenceDate, Source, Close'. Empty or '*' returns every column. Reserved words need no quoting or brackets. |
| database | string | yes | Name of the database as registered in the configuration. |
| group_by | string | – | GROUP BY columns as ONE comma-separated string. Example: 'Source, Name' |
| order_by | string | – | ORDER BY clause without the ORDER BY keyword. Example: 'ReferenceDate DESC, Name' |
| sample_percent | number | – | Random sampling percentage, from 0.01 to 100. Zero (the default) means no sampling. |
| schema | string | – | Table/view schema. Empty means dbo. Example: 'Feeder' |
| skip | integer | – | Number of rows to skip before returning results (for pagination, default 0). |
| table | string | yes | Table or view name, bare, with no schema prefix. Example: 'GenericSecurity' |
| top | integer | – | Maximum number of rows to return (default 100, capped by the per-database limit). |
| where | string | – | WHERE clause without the WHERE keyword, as SQL. Example: "Source = 'BDS' AND ReferenceDate >= '2026-01-01'" |
No output schema declared.
No examples provided.
How do I install the Elekto MCP for SQL Server server?
Elekto MCP for SQL Server runs locally as a NuGet package, launched with dnx Elekto.Mcp.Sql@2.3.4 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · Elekto.Mcp.Sql
claude mcp add elekto-com-br-elekto-mcp-sql -- dnx Elekto.Mcp.Sql@2.3.4 --yes
What is the Elekto MCP for SQL Server server?
Elekto MCP for SQL Server is listed in the public MCP registry as io.github.elekto-com-br/elekto-mcp-sql. Read-only SQL Server introspection and querying: schema, definitions, dependencies and data. This page covers its NuGet package (Elekto.Mcp.Sql).
Is the Elekto MCP for SQL Server server safe to use?
Elekto MCP for SQL Server scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Elekto MCP for SQL Server server expose?
Elekto MCP for SQL Server exposes 21 tools: list_procedures, generate_dependency_dot, list_schemas, get_dependency_graph, check_permissions, and 16 more. Their descriptions and schemas cost roughly 3,249 tokens of context every time the server is loaded.
Is the Elekto MCP for SQL Server server still maintained?
Elekto MCP for SQL Server is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Elekto MCP for SQL Server server under?
Elekto MCP for SQL Server declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.