by OpenLinkSoftware
A lightweight C#-based MCP (Model Context Protocol) server for ADO.NET . This server is compatible with Virtuoso. Currently, this server has only been successfully tested using the .NET runtimes on Windows and Linux.
MCP_AdoNet_Server.csproj
) is compatible with your environment by running:
dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
MCP_AdoNet_Server.csproj
) is compatible with your environment by running:
dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
MCP_AdoNet_Server.csproj
by running:
dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj dotnet build /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
Clone this repository:
git clone https://github.com/OpenLinkSoftware/mcp-adonet-server.git cd mcp-adonet-server
Update your .env
by overriding these defaults to match your preferences.
ADO_URL="HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo"
API_KEY=xxx
For Claude Desktop users:
Add the following to claude_desktop_config.json
:
NET.8
{ "mcpServers": { "my_database": { "command": "dotnet", "args": ["run", "--framework", "net8.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"], "env": { "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo", "API_KEY": "sk-xxx" } } } }
NET.9
{ "mcpServers": { "my_database": { "command": "dotnet", "args": ["run", "--framework", "net9.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"], "env": { "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo", "API_KEY": "sk-xxx" } } } }
After successful installation, the following tools will be available to MCP client applications.
name | description |
---|---|
ado_get_schemas | List database schemas accessible to connected database management system (DBMS). |
ado_get_tables | List tables associated with a selected database schema. |
ado_describe_table | Provide the description of a table associated with a designated database schema. This includes information about column names, data types, null handling, autoincrement, primary key, and foreign keys |
ado_filter_table_names | List tables, based on a substring pattern from the q input field, associated with a selected database schema. |
ado_query_database | Execute a SQL query and return results in JSONL format. |
ado_execute_query | Execute a SQL query and return results in JSONL format. |
ado_execute_query_md | Execute a SQL query and return results in Markdown table format. |
ado_spasql_query | Execute a SPASQL query and return results. |
ado_sparql_query | Execute a SPARQL query and return results. |
ado_virtuoso_support_ai | Interact with the Virtuoso Support Assistant/Agent -- a Virtuoso-specific feature for interacting with LLMs |
ado_get_schemas
url
(string, optional): ADO.NET URL connection string.ado_get_tables
schema
(string, optional): Database schema to filter tables. Defaults to connection default.url
(string, optional): ADO.NET URL connection string.TABLE_CAT
, TABLE_SCHEM
, TABLE_NAME
, TABLE_TYPE
).ado_filter_table_names
q
(string, required): The substring to search for within table names.schema
(string, optional): Database schema to filter tables. Defaults to connection default.url
(string, optional): ADO.NET URL connection string.ado_describe_table
schema
(string, required): The database schema name containing the table.table
(string, required): The name of the table to describe.url
(string, optional): ADO.NET URL connection string.COLUMN_NAME
, TYPE_NAME
, COLUMN_SIZE
, IS_NULLABLE
).ado_query_database
query
(string, required): The SQL query string to execute.url
(string, optional): ADO.NET URL connection string.ado_query_database_md
query
(string, required): The SQL query string to execute.url
(string, optional): ADO.NET URL connection string.ado_query_database_jsonl
query
(string, required): The SQL query string to execute.url
(string, optional): ADO.NET URL connection string.ado_spasql_query
query
(string, required): The SPASQL query string.max_rows
(number, optional): Maximum number of rows to return. Defaults to 20
.timeout
(number, optional): Query timeout in milliseconds. Defaults to 30000
.url
(string, optional): ADO.NET URL connection string.Demo.demo.execute_spasql_query
).ado_sparql_query
query
(string, required): The SPARQL query string.format
(string, optional): Desired result format. Defaults to 'json'
.timeout
(number, optional): Query timeout in milliseconds. Defaults to 30000
.url
(string, optional): ADO.NET URL connection string."UB".dba."sparqlQuery"
).ado_virtuoso_support_ai
prompt
(string, required): The prompt text for the AI function.api_key
(string, optional): API key for the AI service. Defaults to "none"
.url
(string, optional): ADO.NET URL connection string.DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI
).For easy troubleshooting:
Install the MCP Inspector:
npm install -g @modelcontextprotocol/inspector
Start the inspector, depending on which .Net version is in use:
dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj npx @modelcontextprotocol/inspector dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
-- or --
dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
npx @modelcontextprotocol/inspector dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
Access the provided URL to troubleshoot server interactions.
No version information available
0 contributors