Skip to content

Commit

Permalink
Merge pull request #279 from rakesh-eltropy/main
Browse files Browse the repository at this point in the history
Replaced hyphen with underscore in Sqlite & Sentry tools..
  • Loading branch information
jspahrsummers authored Dec 9, 2024
2 parents eed1282 + 63a7fe9 commit f905115
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 29 deletions.
2 changes: 1 addition & 1 deletion src/sentry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions src/sentry/src/mcp_server_sentry/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down
10 changes: 5 additions & 5 deletions src/sqlite/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
42 changes: 21 additions & 21 deletions src/sqlite/src/mcp_server_sqlite/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
</mcp>
<demo-instructions>
You are an AI assistant tasked with generating a comprehensive business scenario based on a given topic.
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -266,15 +266,15 @@ 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",
"properties": {},
},
),
types.Tool(
name="describe-table",
name="describe_table",
description="Get the schema information for a specific table",
inputSchema={
"type": "object",
Expand All @@ -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",
Expand All @@ -303,21 +303,21 @@ 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(
f"PRAGMA table_info({arguments['table_name']})"
)
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")

Expand All @@ -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"])
Expand Down

0 comments on commit f905115

Please sign in to comment.