feat: add MCP server with sql_query, web_fetch, web_search tools - #62
Open
dimslaev wants to merge 6 commits into
Open
feat: add MCP server with sql_query, web_fetch, web_search tools#62dimslaev wants to merge 6 commits into
dimslaev wants to merge 6 commits into
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Model Context Protocol (MCP) server that exposes three tools for agents to query the database, fetch web pages, and search the web.
Key changes:
app/mcp/server.py) with bearer-token authentication gated byMCP_TOKENsettingapp/mcp/tools.py:sql_query: read-only database access viaagentique_rorole, with statement planning to block writes and access to theusertable, 1000-row result cap, and JSON serialization for timestamps/numericsweb_fetch: extracts readable text from a URL with proxy retry on 403/paywall/login blocksweb_search: Tavily web search with result ranking and optional domain filteringagentique_rodatabase role (passwordless on socket, password-protected over TCP) with SELECT-only grants and statement/lock timeouts/mcp/in the main FastAPI app with CORS headers for SSE streaming/mcpendpoint.mcp.jsonclient config for agent integrationImplementation details:
EXPLAIN (FORMAT JSON)walks the entire plan tree to catch blocked tables in subqueries, CTEs, and joins_json_safefallback handles datetime, Decimal, UUID, and pgvector types for JSON serializationhttps://claude.ai/code/session_014AwCiyN5ksZ5QsHqXq8RQw