# Synamcps > Synamcps is the secure gateway that turns your company's scattered knowledge into a single, permission-aware MCP endpoint that any LLM client or AI agent can safely query. It is a self-hosted Model Context Protocol (MCP) server and knowledge gateway in one: ingest documents, files and links into governed storages; expose them over MCP so Claude, Cursor, Claude Code and custom agents connect in seconds; and enforce who can see what down to the individual document. Synamcps sits between your AI and your knowledge. It is open-source and self-hosted (Docker Compose ships Postgres, Redis, S3/MinIO and Synamcps together). It is the governance layer for enterprise RAG and agents: bring any LLM client and Synamcps handles identity, permissions, knowledge ingestion, and the MCP transport — so your AI gets exactly the context it is allowed to have, and nothing more. ## What makes it different - **Permission-narrowing tokens**: Tokens never expand access — they only intersect a user's existing ACL with the token's scopes (read-only, specific storages, specific tools). A leaked token can do no more than its owner, usually far less. - **Document-level visibility**: `personal` / `group` / `public` is enforced on top of storage access. Reading a storage is necessary but never sufficient — private docs stay private even to other storage readers. - **Dynamic tool exposure**: MCP `tools/list` is computed per token. Each agent sees only the tools and storages it is allowed to touch — nothing to discover, nothing to probe. - **MCP proxy / federation**: Register upstream HTTP/SSE MCP servers, auto-discover their tools/resources/prompts, namespace them (`{slug}__{tool}`), and re-expose them behind unified ACLs and rate limits. Upstream secrets stored encrypted at rest. - **Governed ingestion + SSRF guard**: Add knowledge as text, file upload or link. Files and links run through extraction → summary → embeddings automatically. Link ingestion refuses loopback, link-local, cloud-metadata (`169.254.169.254`) and private ranges, even across redirects. - **Built-in RAG search**: Embedding-based semantic search over pgvector or Qdrant, with source / sourceUrl / storage filters and pagination. - **Enterprise auth**: OIDC / Keycloak / Google / Teleport Proxy JWT, plus internal login for the Admin UI. Strict CORS allowlist. - **Rate limits & metrics**: Per-token minute/hour/day + burst limits on both MCP and REST. Prometheus `/metrics`, Redis TimeSeries usage accounting, component status dashboard. - **Admin UI**: Server-rendered console for users, groups, storages, ACLs, tokens, ingestion and search, plus an MCP Connect wizard that generates ready-to-paste client config. ## Who it's for Platform and ML teams who want to ship internal copilots and agentic workflows without writing their own auth, RBAC, rate limiting, ingestion pipeline, and MCP plumbing — and without their security team blocking the launch. ## API surface - `POST /api/knowledge` — create a knowledge item from text - `POST /api/knowledge/ingest/file` — upload a file (PDF/specs) - `POST /api/knowledge/ingest/link` — crawl a URL (SSRF-protected) - `POST /api/knowledge/search` — embedding-based semantic search - `/api/admin/*` — manage users, groups, storages, ACLs, tokens - `/mcp` — streamable HTTP MCP endpoint (legacy SSE optional) - `/metrics` — Prometheus-format metrics ## Quick start ```sh git clone https://github.com/synamcps/synamcps-server cd synamcps-server cp .env.example .env make compose-up # Admin UI: http://localhost:8080/login ``` ## Links - Full description and scenarios (markdown): https://synamcps.ai/llms-full.txt - Source code: https://github.com/synamcps/synamcps-server - Documentation (README): https://github.com/synamcps/synamcps-server/blob/main/README.md - Website: https://synamcps.ai