Infino

by infino-ai

Not rated
GitHub

About

Infino — keyword, vector, hybrid, and SQL retrieval over data on object storage, for AI agents.

Details

Author
infino-ai
Categories
Database, Other, File Management

Setup

Install Infino in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/infino-ai/infino-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

AnMCPserver forInfino— it lets an AI agent runkeyword,semantic,hybrid, andSQLretrieval over your data on object storage, from any MCP-compatible client (Claude Code, Claude Desktop, Cursor, VS Code, and others). Published on npm as@infino-ai/mcp-serverand listed on theofficial MCP Registryasio.github.infino-ai/mcp-server(which propagates to catalogs like Smithery, Glama, and PulseMCP).

- Local embeddings, no key.Semantic search embeds queries with a local model — nothing leaves the machine for embedding.
- Read-only by default.Writes and full SQL are opt-in behind a single environment flag.
- Local or hosted.Point it at a local path, your own bucket (S3, Azure, or any S3-compatible store), or a hosted Infino Cloud endpoint with an API key.

- Requirements
-
Quick start
-
Claude Code plugin (one-step install)
-
Client setup

- Claude Code
-
Claude Desktop
-
Cursor
-
VS Code
-
Other MCP clients

- Node.js ≥ 18(the server runs as a Node process over stdio).
- An MCP-compatible client(Claude Code, Claude Desktop, Cursor, VS Code, …).
- Data reachable by Infino— a local directory, a bucket with credentials available in the environment, or a hosted Infino Cloud endpoint with an API key (see
Storage backends).
- On first run the server downloads the local embedding model (~90 MB) once and caches it; subsequent runs are offline for embedding.

The server is launched by your MCP client over stdio — you don't run it directly in normal use. Every client config follows the same shape: commandnpx -y @infino-ai/mcp-server, with configuration supplied via environment variables. SetINFINO_MCP_URIto the data you want to serve — a local path or a bucket URI. If it's omitted, the server uses a durable per-user directory (~/.infino/mcp) so data persists across restarts; pointINFINO_MCP_URIat your own path or bucket to serve existing data.

{ "command": "npx", "args": ["-y", "@infino-ai/mcp-server"], "env": { "INFINO_MCP_URI": "/Users/me/.infino/memory" } }

To serve ahosted Infino Clouddatabase instead, pointINFINO_MCP_URIat thehttps://<host>/<database>endpoint and supply your API key — everything else (the tools, the read-only default) is identical:

{ "command": "npx", "args": ["-y", "@infino-ai/mcp-server"], "env": { "INFINO_MCP_URI": "https://api.platform.infino.ai/my-database", "INFINO_API_KEY": "inf_…" } }

The sections below show the exact place each client expects this block.

ForClaude Code, this repo is also a plugin marketplace. Installing the plugin wires up the MCP serverplusa how-to-use skill and an/infino-searchcommand in one step — no JSON to edit. Inside Claude Code:

/plugin marketplace add infino-ai/infino-mcp /plugin install infino@infino-ai

On enable you'll be prompted for yourInfino data URI(INFINO_MCP_URI) and whether toenable writes. That's it — theinfino_tools, theusing-infinoskill, and/infino-search <query>are then available. (Other clients: use theClient setupconfigs below.)

Add the server with the CLI. Use--scope userto make it available in every project, or--scope projectto commit it to the repo (writes a shared.mcp.json); the default scope islocal(this project only).

claude mcp add infino \ --scope user \ -e INFINO_MCP_URI=/Users/me/.infino/memory \ -- npx -y @infino-ai/mcp-server

Add more knobs with repeated-eflags, e.g.-e INFINO_MCP_ENABLE_WRITES=true. Verify with:

Edit the configuration file (create it if it doesn't exist), then fully restart Claude Desktop.

{ "mcpServers": { "infino": { "command": "npx", "args": ["-y", "@infino-ai/mcp-server"], "env": { "INFINO_MCP_URI": "/Users/me/.infino/memory" } } } }

Add the server to~/.cursor/mcp.json(available in all projects) or<project>/.cursor/mcp.json(this project only), then reload. The format matches Claude Desktop:

{ "mcpServers": { "infino": { "command": "npx", "args": ["-y", "@infino-ai/mcp-server"], "env": { "INFINO_MCP_URI": "/Users/me/.infino/memory" } } } }

VS Code (1.102+) reads MCP servers from.vscode/mcp.jsonin the workspace (or your usermcp.jsonvia the command palette →MCP: Open User Configuration). Note the top-level key isserversand each entry declares"type": "stdio":

{ "servers": { "infino": { "type": "stdio", "command": "npx", "args": ["-y", "@infino-ai/mcp-server"], "env": { "INFINO_MCP_URI": "/Users/me/.infino/memory" } } } }

Any client that speaks MCP over stdio works. Configure it to launch:

command: npx args: -y @infino-ai/mcp-server env: INFINO_MCP_URI=<path-or-bucket-uri> (plus any options below)

Logs are written tostderrso they never corrupt the JSON-RPC stream on stdout — point your client's log capture there when debugging.

All configuration is via environment variables — there are no config files and no command-line flags to manage.

Cloud credentials are read from the standard provider environment variables — the server maps them to the store's config and introduces no credential vars of its own. Omit them entirely to use ambient cloud identity (an IAM instance role or Azure managed identity).

Serving a catalog embedded with OpenAI / Azure OpenAI.If your tables were vectorized with a hosted embedding model rather than the local default, point the server at that same model so query and document vectors align:

"env": { "INFINO_MCP_URI": "s3://my-bucket/infino", "INFINO_MCP_EMBED_PROVIDER": "openai", "INFINO_MCP_EMBED_BASE_URL": "https://my-resource.openai.azure.com/openai/v1", "INFINO_MCP_EMBED_API_KEY": "…", "INFINO_MCP_EMBED_MODEL": "text-embedding-3-small" }

The model must match what produced the stored vectors — a mismatch yields meaningless similarity or a dimension error. Keyword and SQL search are unaffected by the embedder.

// Local directory "env": { "INFINO_MCP_URI": "/Users/me/.infino/memory" } // AWS S3 — ambient AWS_ credentials, default endpoint "env": { "INFINO_MCP_URI": "s3://my-bucket/infino", "AWS_ACCESS_KEY_ID": "…", "AWS_SECRET_ACCESS_KEY": "…" } // S3-compatible (Cloudflare R2 / MinIO / Backblaze B2) — custom endpoint "env": { "INFINO_MCP_URI": "s3://my-bucket/infino", "AWS_ENDPOINT_URL": "https://<account>.r2.cloudflarestorage.com", "AWS_ACCESS_KEY_ID": "…", "AWS_SECRET_ACCESS_KEY": "…" } // Azure Blob "env": { "INFINO_MCP_URI": "az://my-container/infino", "AZURE_STORAGE_ACCOUNT": "…", "AZURE_STORAGE_KEY": "…" } // Infino Cloud (hosted) — the database is the last path segment "env": { "INFINO_MCP_URI": "https://api.platform.infino.ai/my-database", "INFINO_API_KEY": "inf_…" }

On a hosted connection the search, SQL, and (when enabled) write tools all behave exactly as they do locally — the only difference is where the data lives. Compaction and garbage collection are handled server-side, so they are not exposed as client operations. Note that semantic and hybrid search still embed querieslocallyin this server, soINFINO_MCP_EMBED_MODELmust match the model that produced the hosted table's stored vectors (see the OpenAI / Azure OpenAI note above) — this matters especially when someone else ingested the data.

The engine's search table functions (bm25_search,vector_search,hybrid_search, …) are not callable frominfino_sql— retrieval goes through the dedicated search tools above, which embed and project for you.infino_sqlis for filters, joins, and aggregates.

This server runs locally, beside the client, and keeps data and credentials on the user's machine.

- Local execution, no inbound listener.It runs as a subprocess of your MCP client over stdio and opens no network listener. In the default local/bucket mode it contacts no remote service. WhenINFINO_MCP_URIis a hostedhttps://endpoint, it makesoutboundTLS calls to that endpoint to serve searches, SQL, and (if enabled) writes — so the data in those requests reaches the hosted service you configured, and nothing else.
- No data sent for embedding.Query and document embedding uses a local model — text is never sent to a third-party embedding API. There is no embedding API key to provision or leak. (This holds in both local and hosted mode: only the resulting query vector, not the raw text of the embed input, is sent to a hosted endpoint.)
- Credentials stay in the environment.Storage credentials (AWS_/AZURE_) and the hosted API key (INFINO_API_KEY) are read from environment variables and used only to reach the store or endpoint you configured. They are never logged or returned in tool output.
- Read-only by default.WithoutINFINO_MCP_ENABLE_WRITES, the write tool is not even advertised to the agent, andinfino_sqlrejects anything but a singleSELECT/WITH. Enable writes deliberately, and prefer scoping the server to data the agent is allowed to modify.
- Least privilege.PointINFINO_MCP_URIat the narrowest dataset the task needs, and supply storage credentials scoped to that bucket/prefix.

Semantic search embeds locally with Hugging Face transformers.js (all-MiniLM-L6-v2, 384-dim by default; override withINFINO_MCP_EMBED_MODEL). The server embedsboththe documents it ingests (viainfino_add_documents) and your queries with the same model, so they align in the same vector space.

If you changeINFINO_MCP_EMBED_MODEL, the table's vector index must match the new model's dimension — embeddings produced by different models are not comparable, and a dimension mismatch will fail at search time.

The server depends on the published@infino-ai/infinoNode binding, which resolves from public npm like any other dependency.

npm install npm run build INFINO_MCP_URI=/path/to/data node dist/index.js # runs on stdio

Point a client atnode /absolute/path/dist/index.jsover stdio to dogfood a local build, or use theMCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Immutable ledger database with live synchronization

Infino — keyword, vector, hybrid, and SQL retrieval over data on object storage, for AI agents.

A decentralized memory layer for AI agents providing secure, persistent storage for conversation history and knowledge.

Official MCP server for the Nhost backend platform — manage Postgres data, GraphQL, auth, storage, migrations and Hasura metadata via AI assistants.

Run SQL queries on data in Amazon S3 using AWS Athena.

An MCP server for interacting with Azure Table Storage, requiring an Azure Storage connection string.

Manage multiple Fireproof JSON document databases with cloud sync capabilities.

An MCP server for interacting with Apache Iceberg catalogs and data lakes.

MCP Memory Server - Python Implementation

A Python implementation of the MCP memory server for knowledge graph storage and retrieval, using JSONL files for persistence.

Allow your agent to connect to Pocketbase with ease.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.