MCP Server Connectors
Connect any MCP server (stdio, SSE, or streamable HTTP) as a connector. Dinobase discovers the server’s read-only tools, calls them, and caches the results as JSON files exposed as DuckDB views — queryable with the same SQL interface as any other connector.
This gives you two complementary interfaces to the same MCP server:
- SQL, for reads: synced data is available as
connector.tool_nametables - Direct tool calls, for writes or parameterized queries:
dinobase mcp call
Quick start
Section titled “Quick start”The easiest way to add an MCP server is through the setup UI’s registry browser:
dinobase setupIn the Add a source section, click Browse MCP registry…. This fetches
the reference server list from
modelcontextprotocol/servers,
lets you fill in any required env vars, and writes the YAML to
~/.dinobase/connectors/<name>.yaml in one click. See the
Setup UI guide for the full walkthrough.
Or use the CLI directly:
# stdio (local process)dinobase connector create posthog_mcp \ --transport stdio \ --command "npx -y @posthog/mcp-server"
# SSEdinobase connector create my_server \ --transport sse \ --url "https://server/sse"
# Streamable HTTPdinobase connector create my_server \ --transport streamable_http \ --url "https://server/mcp"
dinobase sync posthog_mcpdinobase query "SELECT * FROM posthog_mcp.list_projects LIMIT 10"Connector YAML format
Section titled “Connector YAML format”Configs live at ~/.dinobase/connectors/<name>.yaml. The transport block is what distinguishes an MCP connector from a custom REST connector:
name: posthog_mcpdescription: "PostHog MCP server"mode: live # live | sync (default: live for MCP)
transport: type: stdio # stdio | sse | streamable_http command: npx args: - "-y" - "@posthog/mcp-server"
# Optional: only sync these specific tools.# Default: all read-only tools are auto-discovered.tools: - list_projects - list_feature_flagsFor SSE and streamable HTTP, use url instead of command/args:
transport: type: sse url: "https://my-mcp-server.example.com/sse" headers: Authorization: "Bearer my_token"How read-only tools are selected
Section titled “How read-only tools are selected”When syncing, Dinobase only calls tools that are safe to call without context:
- User allowlist — if
tools:is set in the YAML, only those tools are called - MCP ToolAnnotations — tools with
readOnlyHint: trueare included;destructiveHint: trueare excluded - Name heuristics — tools starting with
list_,get_,search_,read_, orfetch_are included; tools starting withcreate_,update_,delete_,set_,send_,remove_, orput_are excluded - Required parameters — tools with required parameters are skipped (they can’t be called without context)
Calling tools directly
Section titled “Calling tools directly”Use dinobase mcp call for tools that need arguments or for write operations:
# Browse available toolsdinobase mcp servers --prettydinobase mcp info posthog_mcp --prettydinobase mcp search "dashboard" --pretty
# Call a tool with argumentsdinobase mcp call posthog_mcp.dashboard-get '{"id": 1118504}'Or use the Python API:
from dinobase.mcp import call, search
result = call("posthog_mcp.dashboard-get", id=1118504)matches = search("dashboard")Transport types
Section titled “Transport types”| Type | When to use |
|---|---|
stdio | Local process (e.g., an npm package run via npx) |
sse | Remote server exposing a legacy SSE endpoint |
streamable_http | Remote server exposing a streamable HTTP endpoint |
See also
Section titled “See also”- Connectors guide — overview of all connector types
dinobase mcpCLI reference — all subcommands- Python MCP client API —
call,tools,servers,search,instructions exec_codeMCP tool — let agents call MCP tools via Python- Custom REST connectors — for plain REST APIs instead of MCP