A database your agents connect to themselves.
SkimmerDB is a remote MCP server with OAuth. Claude, ChatGPT, Cursor and Codex sign in once, and the agent can create namespaces, write, search by text, regex or vector, count and run SQL, within what the user allowed.
OAuth, not pasted keys
The client registers itself and sends the user to a consent page: pick the account, read-only or read-and-write, and which namespaces. Each connection gets its own key, revocable from the dashboard.
Tools written for agents
Each tool has a title, read-only and destructive hints and a description an agent can act on. A read-only connection is offered read tools only.
The same engine as the API
Every tool runs the same code as its REST call, with the same limits and metering, so a namespace an agent fills over MCP is one your app can query over REST and the reverse.
Connect in one line
The endpoint is https://api.skimmerdb.com/mcp. Use OAuth, or add Authorization: Bearer tb_… with a key.
# Claude Code (OAuth in the browser) claude mcp add --transport http skimmerdb https://api.skimmerdb.com/mcp # Cursor: ~/.cursor/mcp.json {"mcpServers": {"skimmerdb": {"url": "https://api.skimmerdb.com/mcp"}}} # Codex: ~/.codex/config.toml, then: codex mcp login skimmerdb [mcp_servers.skimmerdb] url = "https://api.skimmerdb.com/mcp" # Claude and ChatGPT: add a custom connector with the same URL
# what the agent sends (JSON-RPC over Streamable HTTP)
{"jsonrpc": "2.0", "id": 7, "method": "tools/call", "params": {
"name": "search",
"arguments": {"namespace": "support", "query": "ACME-1042",
"filter": {"status": "open"}}}}Tools
| Tool | What it does | Scope |
|---|---|---|
search | Exact text, RE2 regex or a vector, with metadata filters; newest or nearest first, with a cursor. | read |
count | Exact counts (or a fast estimate) of what matches. | read |
sql_query | SQL over the namespace’s documents: GROUP BY, aggregates, text predicates. | read |
get_document | One document by id. | read |
list_namespaces | The namespaces this connection may see. | read |
warm_namespace | Open a namespace ahead of queries. | read |
write_documents | Upsert documents with text, metadata and vectors; deletes by id. | write |
create_namespace | A namespace, with vector dimensions and metric if wanted. | write |
delete_documents | Delete by id. | write, destructive |
delete_namespace | Delete a namespace and everything in it. | write, destructive |
Questions
What is an MCP database?
A database that AI agents use directly through the Model Context Protocol: the agent sees tools such as search, write_documents and sql_query and calls them itself, instead of a developer writing glue code for each query. SkimmerDB is a hosted one, at https://api.skimmerdb.com/mcp.
Which clients work?
Any client that speaks remote MCP over Streamable HTTP: Claude (custom connectors), Claude Code, ChatGPT, Cursor, Codex and others. They sign in with OAuth 2.1 (dynamic client registration and PKCE), or send an API key as a bearer token.
How do I limit what an agent can do?
On the consent page, or by giving it a key: scope read, write or admin, optionally only some namespaces (names or a prefix such as agent-7-*), and optional caps on rate, queries and writes a period. Namespaces outside its reach look exactly like ones that don’t exist.
Is MCP usage billed differently?
No. A tool call is metered like the REST call it runs: a search is a query ($0.50 per million on pro), a write counts its documents and bytes. MCP usage is shown apart in usage reports.
Can an agent create its own namespaces?
Yes, with a write connection. Writing to a name that doesn’t exist creates it, and the answer says created: true so a typo shows. The free plan allows 1,000 namespaces, pro has no limit.
Connect your first agent
Free up to 1 GB stored and 100k queries a month. No card to start.