{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_fbeb79u7dtx7","handle":"semql-mcp","url":"https://wellknown.network/agents/semql-mcp","links":{"self":"https://wellknown.network/agents/semql-mcp/record.json","html":"https://wellknown.network/agents/semql-mcp","markdown":"https://wellknown.network/agents/semql-mcp/record.md","api":"https://wellknown.network/api/v1/agents/semql-mcp","status":"https://wellknown.network/api/v1/agents/semql-mcp/status","claim":"https://wellknown.network/agents/semql-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/semql-mcp/claim.json","badge":"https://wellknown.network/agents/semql-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:semql-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"semql-mcp","summary":"MCP server that wraps a semql Catalog — compile-only by default, opt-in row execution via a caller-provided executor.","description":"# semql-mcp\n\nAn MCP server that wraps a [`semql`](../semql) `Catalog` and exposes\nits compiler / validator / prompt-renderer surfaces as tools any MCP\nclient can call. Built on [FastMCP](https://github.com/jlowin/fastmcp).\n\n## Two modes\n\nBy default the server is **compile-only**. `semql` is a pure compiler —\nno I/O — and this server keeps that contract. Tools return the emitted\nSQL and bound parameters; the caller runs the SQL against whatever\nbackend they own.\n\nPass an `executor` at construction to opt into **exec mode**. A\n`query_execute` tool registers in addition to the compile-only tools;\nit runs the SQL against your executor and returns both the SQL/params\nenvelope and the resulting rows.\n\n## Install\n\n```sh\npip install semql-mcp\n```\n\n## Quick start — compile-only\n\n```python\nfrom semql import Dialect, Catalog, Cube, Dimension, Measure\nfrom semql_mcp import MCPServer\n\ncatalog = Catalog([\n    Cube(\n        name=\"orders\",\n        dialect=Dialect.POSTGRES,\n        table=\"orders\",\n        alias=\"o\",\n        measures=[Measure(name=\"revenue\", sql=\"{o}.amount\", agg=\"sum\", unit=\"currency\")],\n        dimensions=[Dimension(name=\"region\", sql=\"{o}.region\", type=\"string\")],\n    ),\n])\n\nserver = MCPServer(catalog)\nserver.run(transport=\"stdio\")  # speak JSON-RPC over stdin/stdout\n```\n\n## Quick start — exec mode\n\nBring your own database driver and adapt its row shape to a list of\ndicts:\n\n```python\nimport psycopg\nfrom psycopg.rows import dict_row\n\nfrom semql_mcp import MCPServer\n\ndef executor(sql: str, params: dict) -> list[dict]:\n    with psycopg.connect(\"postgresql://...\", row_factory=dict_row) as conn:\n        with conn.cursor() as cur:\n            cur.execute(sql, params)\n            return list(cur.fetchall())\n\nserver = MCPServer(catalog, executor=executor)\nserver.run(transport=\"stdio\")\n```\n\nThe MCP server never imports a database driver. Whatever you wire in\nis what gets called; semql-mcp just hands it `(sql, params)` and\nexpects `list[dict]` back.\n\n## Tools\n\nAlways regis…","publisher":{"name":"Nikhil Pallamreddy","url":null},"homepage":"https://github.com/semql-io/semql","repository":"https://github.com/semql-io/semql","version":"0.7.0","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:semql-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.791,"provenance":"derived"}],"categories":["commerce","data"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"semql-mcp","registry":"pypi","observedAt":"2026-09-10T12:23:19.343Z","publishedAt":"2026-07-21T03:53:36.131115Z","latestVersion":"0.7.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"semql-mcp","url":"https://pypi.org/project/semql-mcp/","firstSeenAt":"2026-09-10T12:21:29.446Z","fetchedAt":"2026-09-10T12:21:29.446Z","normalizedAt":"2026-09-10T12:21:29.446Z"}]},"firstSeenAt":"2026-09-10T12:21:29.446Z","updatedAt":"2026-09-10T12:23:19.343Z"}