From acc3ba2740416339ef753b4e46f87d677a1c633b Mon Sep 17 00:00:00 2001 From: Rakesh Goyal Date: Mon, 9 Dec 2024 19:47:36 +0530 Subject: [PATCH 1/4] Replaced hyphen with underscore in the tool names --- src/sqlite/src/mcp_server_sqlite/server.py | 42 +++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/sqlite/src/mcp_server_sqlite/server.py b/src/sqlite/src/mcp_server_sqlite/server.py index 1b97a6a4..05cd117b 100644 --- a/src/sqlite/src/mcp_server_sqlite/server.py +++ b/src/sqlite/src/mcp_server_sqlite/server.py @@ -27,12 +27,12 @@ This server exposes one key resource: "memo://insights", which is a business insights memo that gets automatically updated throughout the analysis process. As users analyze the database and discover insights, the memo resource gets updated in real-time to reflect new findings. Resources act as living documents that provide context to the conversation. Tools: This server provides several SQL-related tools: -"read-query": Executes SELECT queries to read data from the database -"write-query": Executes INSERT, UPDATE, or DELETE queries to modify data -"create-table": Creates new tables in the database -"list-tables": Shows all existing tables -"describe-table": Shows the schema for a specific table -"append-insight": Adds a new business insight to the memo resource +"read_query": Executes SELECT queries to read data from the database +"write_query": Executes INSERT, UPDATE, or DELETE queries to modify data +"create_table": Creates new tables in the database +"list_tables": Shows all existing tables +"describe_table": Shows the schema for a specific table +"append_insight": Adds a new business insight to the memo resource You are an AI assistant tasked with generating a comprehensive business scenario based on a given topic. @@ -68,7 +68,7 @@ b. Explain the purpose of each query option. c. Wait for the user to select one of the query options. d. After each query be sure to opine on the results. -e. Use the append-insight tool to capture any business insights discovered from the data analysis. +e. Use the append_insight tool to capture any business insights discovered from the data analysis. 7. Generate a dashboard: a. Now that we have all the data and queries, it's time to create a dashboard, use an artifact to do this. @@ -233,7 +233,7 @@ async def handle_list_tools() -> list[types.Tool]: """List available tools""" return [ types.Tool( - name="read-query", + name="read_query", description="Execute a SELECT query on the SQLite database", inputSchema={ "type": "object", @@ -244,7 +244,7 @@ async def handle_list_tools() -> list[types.Tool]: }, ), types.Tool( - name="write-query", + name="write_query", description="Execute an INSERT, UPDATE, or DELETE query on the SQLite database", inputSchema={ "type": "object", @@ -255,7 +255,7 @@ async def handle_list_tools() -> list[types.Tool]: }, ), types.Tool( - name="create-table", + name="create_table", description="Create a new table in the SQLite database", inputSchema={ "type": "object", @@ -266,7 +266,7 @@ async def handle_list_tools() -> list[types.Tool]: }, ), types.Tool( - name="list-tables", + name="list_tables", description="List all tables in the SQLite database", inputSchema={ "type": "object", @@ -274,7 +274,7 @@ async def handle_list_tools() -> list[types.Tool]: }, ), types.Tool( - name="describe-table", + name="describe_table", description="Get the schema information for a specific table", inputSchema={ "type": "object", @@ -285,7 +285,7 @@ async def handle_list_tools() -> list[types.Tool]: }, ), types.Tool( - name="append-insight", + name="append_insight", description="Add a business insight to the memo", inputSchema={ "type": "object", @@ -303,13 +303,13 @@ async def handle_call_tool( ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Handle tool execution requests""" try: - if name == "list-tables": + if name == "list_tables": results = db._execute_query( "SELECT name FROM sqlite_master WHERE type='table'" ) return [types.TextContent(type="text", text=str(results))] - elif name == "describe-table": + elif name == "describe_table": if not arguments or "table_name" not in arguments: raise ValueError("Missing table_name argument") results = db._execute_query( @@ -317,7 +317,7 @@ async def handle_call_tool( ) return [types.TextContent(type="text", text=str(results))] - elif name == "append-insight": + elif name == "append_insight": if not arguments or "insight" not in arguments: raise ValueError("Missing insight argument") @@ -332,19 +332,19 @@ async def handle_call_tool( if not arguments: raise ValueError("Missing arguments") - if name == "read-query": + if name == "read_query": if not arguments["query"].strip().upper().startswith("SELECT"): - raise ValueError("Only SELECT queries are allowed for read-query") + raise ValueError("Only SELECT queries are allowed for read_query") results = db._execute_query(arguments["query"]) return [types.TextContent(type="text", text=str(results))] - elif name == "write-query": + elif name == "write_query": if arguments["query"].strip().upper().startswith("SELECT"): - raise ValueError("SELECT queries are not allowed for write-query") + raise ValueError("SELECT queries are not allowed for write_query") results = db._execute_query(arguments["query"]) return [types.TextContent(type="text", text=str(results))] - elif name == "create-table": + elif name == "create_table": if not arguments["query"].strip().upper().startswith("CREATE TABLE"): raise ValueError("Only CREATE TABLE statements are allowed") db._execute_query(arguments["query"]) From 50ab31a76077819c3e3fcf83b9279d453483a0ab Mon Sep 17 00:00:00 2001 From: Rakesh Goyal Date: Mon, 9 Dec 2024 19:57:28 +0530 Subject: [PATCH 2/4] Replaced hyphen with underscore in the sentry server.. --- src/sentry/src/mcp_server_sentry/server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sentry/src/mcp_server_sentry/server.py b/src/sentry/src/mcp_server_sentry/server.py index 1760311c..9f885bbc 100644 --- a/src/sentry/src/mcp_server_sentry/server.py +++ b/src/sentry/src/mcp_server_sentry/server.py @@ -223,7 +223,7 @@ async def handle_get_prompt( async def handle_list_tools() -> list[types.Tool]: return [ types.Tool( - name="get-sentry-issue", + name="get_sentry_issue", description="""Retrieve and analyze a Sentry issue by ID or URL. Use this tool when you need to: - Investigate production errors and crashes - Access detailed stacktraces from Sentry @@ -247,7 +247,7 @@ async def handle_list_tools() -> list[types.Tool]: async def handle_call_tool( name: str, arguments: dict | None ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: - if name != "get-sentry-issue": + if name != "get_sentry_issue": raise ValueError(f"Unknown tool: {name}") if not arguments or "issue_id_or_url" not in arguments: From bca13a0ffea3b5a7bb0424fcb5908df33d365e64 Mon Sep 17 00:00:00 2001 From: Rakesh Goyal Date: Mon, 9 Dec 2024 20:02:41 +0530 Subject: [PATCH 3/4] Update README.md for sqlite.. --- src/sqlite/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sqlite/README.md b/src/sqlite/README.md index 5f211c41..2b2bea80 100644 --- a/src/sqlite/README.md +++ b/src/sqlite/README.md @@ -22,26 +22,26 @@ The server provides a demonstration prompt: The server offers six core tools: #### Query Tools -- `read-query` +- `read_query` - Execute SELECT queries to read data from the database - Input: - `query` (string): The SELECT SQL query to execute - Returns: Query results as array of objects -- `write-query` +- `write_query` - Execute INSERT, UPDATE, or DELETE queries - Input: - `query` (string): The SQL modification query - Returns: `{ affected_rows: number }` -- `create-table` +- `create_table` - Create new tables in the database - Input: - `query` (string): CREATE TABLE SQL statement - Returns: Confirmation of table creation #### Schema Tools -- `list-tables` +- `list_tables` - Get a list of all tables in the database - No input required - Returns: Array of table names @@ -53,7 +53,7 @@ The server offers six core tools: - Returns: Array of column definitions with names and types #### Analysis Tools -- `append-insight` +- `append_insight` - Add new business insights to the memo resource - Input: - `insight` (string): Business insight discovered from data analysis From 63a7fe99d763028485819ebed9e67ffdab691fc2 Mon Sep 17 00:00:00 2001 From: Rakesh Goyal Date: Mon, 9 Dec 2024 20:03:33 +0530 Subject: [PATCH 4/4] Update README.md for sentry.. --- src/sentry/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/README.md b/src/sentry/README.md index 34a1feb5..aae44568 100644 --- a/src/sentry/README.md +++ b/src/sentry/README.md @@ -6,7 +6,7 @@ A Model Context Protocol server for retrieving and analyzing issues from Sentry. ### Tools -1. `get-sentry-issue` +1. `get_sentry_issue` - Retrieve and analyze a Sentry issue by ID or URL - Input: - `issue_id_or_url` (string): Sentry issue ID or URL to analyze