{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_snvdufwgdbav","handle":"mcp-sluice","url":"https://wellknown.network/agents/mcp-sluice","links":{"self":"https://wellknown.network/agents/mcp-sluice/record.json","html":"https://wellknown.network/agents/mcp-sluice","markdown":"https://wellknown.network/agents/mcp-sluice/record.md","api":"https://wellknown.network/api/v1/agents/mcp-sluice","status":"https://wellknown.network/api/v1/agents/mcp-sluice/status","claim":"https://wellknown.network/agents/mcp-sluice/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-sluice/claim.json","badge":"https://wellknown.network/agents/mcp-sluice/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-sluice/history","tools":"https://wellknown.network/api/v1/agents/mcp-sluice/tools"},"ard":{"identifier":"urn:air::server:mcp-sluice","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-sluice","summary":"Passthrough MCP server that materializes tool results into a DuckDB scratch database","description":"# Sluice\n\nA passthrough MCP server. It sits between an MCP client and **exactly one**\ndownstream MCP server, mounts the downstream tools, and proxies calls through.\nEvery eligible result is materialized into an in-memory DuckDB scratch database\nbefore being returned, so the agent gets a short preview plus a table handle\ninstead of the payload, and runs SQL over it with Sluice's own `query` tool.\n\nTwo things this buys: aggregation becomes exact rather than a model reading\nrows out of a payload, and an eligible payload is replaced by a bounded handle,\nso it is not re-sent on later turns of the agent loop. Error, binary, and\nover-ceiling results deliberately pass through unchanged.\n\n## Status\n\nThe current release, [v0.2.1](https://pypi.org/project/mcp-sluice/0.2.1/),\nis available from PyPI. Do not use 0.2.0 with DuckDB 2.0: its query gate can be\nbypassed through a CTE (see `CHANGELOG.md`). Proxying, envelope/handle recording, flattening and\ntype inference, the read-only `query` gate, aggregate-correctness properties,\nbounded runtime retention, final adversarial review, and bounded pagination\nfor approved read-only tools (spec 002) are implemented and covered by the\ntest suite. The reproducible live-model demo recorded one\nbaseline miss (71.5) and one Sluice-backed exact answer (72.5); that sampled\nrun is evidence, not a deterministic guarantee.\n\nCI runs the full test, lint, formatting, strict type-check, and package-build\ngates. The end-to-end canary against a real configured GitHub MCP server passed;\nits evidence is in `review/canary-v0.1.0.md`. The project is distributed as\n`mcp-sluice`; the Python import package and console command remain `sluice`.\n\nRead `spec/001-scratch-db.md` before changing behavior; `intent/` records why\nthe non-goals are non-goals; `plan/001-notes-m0.md` holds the measured\nthird-party behavior the design rests on.\n\n**Behavioral baseline verified against:** MCP protocol `2026-07-28`, SDK `mcp`\n2.1.1, DuckDB 2.0.0 and 1.5.5, CPython 3.14. Behav…","publisher":null,"homepage":null,"repository":"https://github.com/miles-automation/sluice/issues","version":"0.2.1","license":null,"protocols":["mcp"],"tags":["duckdb","mcp","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:mcp-sluice","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"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["data","dev"],"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":"mcp-sluice","registry":"pypi","observedAt":"2026-11-09T18:26:13.745Z","publishedAt":"2026-11-07T17:45:28.684769Z","latestVersion":"0.2.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-sluice","url":"https://pypi.org/project/mcp-sluice/","firstSeenAt":"2026-09-10T04:23:06.062Z","fetchedAt":"2026-11-09T18:25:02.039Z","normalizedAt":"2026-11-09T18:25:02.039Z"}]},"firstSeenAt":"2026-09-10T04:23:06.062Z","updatedAt":"2026-11-09T18:26:13.745Z"}