kg_how_to_obtainLABSCO SUMMARY
The tool list is whatever you import.
There is no fixed catalogue here: you import a spec or point at a database, decide in a visual editor what the model sees, and the endpoint serves it. That makes the parts a plain forwarder skips the interesting ones — a Knowledge Graph that tells an agent how to chain tools across two systems, tool-level whitelisting per role, and an audit log holding the input and output of every call. Do the first-account step immediately after setup; whoever registers first becomes Admin.
What it is
An open-source MCP gateway you run on your own infrastructure. Point it at an API or a database and the resulting tools are registered at runtime and served from one MCP endpoint — no SDK, no restart, no code. Five connector types: REST, SOAP, GraphQL, Database (PostgreSQL, MySQL, MariaDB, MSSQL, Oracle, MongoDB, SQLite) and an MCP-to-MCP bridge. Six import formats: OpenAPI/Swagger, Postman, cURL, WSDL, GraphQL introspection and custom JSON. It ships with 175+ pre-built adapters. AGPL-3.0; the cloud-operator code under ee/ is separately licensed and not needed for self-hosting.
What you get
- One MCP endpoint at
http://localhost:4000/mcpserving tools generated from your connectors, registered at runtime with no restart - A visual tool editor: map parameters to path, query, body and headers, and rename and describe tools so the model reads intent rather than endpoint names
- 175+ ready-to-use adapters across logistics, ERP, e-commerce, HR, public data, banking and messaging — Deutsche Bahn, DHL, DPD, GLS, weclapp, Xentral, Etsy, Shopware 6, WooCommerce, Personio, VIES VAT, UK Companies House, N26, Wise and more — each with its own setup guide
- A per-workspace Knowledge Graph of how your connectors' data relates, built from tool names, parameters and the input and output of real calls, editable by hand in a graph editor. It stores entity and field names and relationship metadata, never the values
kg_how_to_obtain— the graph served back over MCP, so the agent can ask how to reach something and get chaining hints across connectors- AI skills: business rules captured from how the tools are actually used, reviewed by a human, then composed into the server's instructions so they guide the agent without adding tool calls
- Auth on the connector side — OAuth2 with PKCE and Client Credentials, Bearer, API Key, Basic, WS-Security, client certificates, LOGIN_TOKEN and OAuth 1.0a handshakes
- Auth on the client side —
MCP_AUTH_MODEselectsnone,legacy,oauth2orbothand defaults tooauth2, alongside per-user MCP API keys - Every tool call logged with input, output, duration and status, plus tool-level whitelisting per custom role
- Per-connector
{{VAR}}interpolation for environment variables, hidden from the model, and credentials encrypted AES-256-GCM at rest
Requirements
Docker 24+, bash and openssl; on macOS start Docker Desktop first. Clone the repository and run ./setup.sh, which walks through deployment mode, domain and HTTPS (automatic Let's Encrypt through Caddy), secrets, MCP auth mode and optional SMTP and Redis. The Web UI comes up on http://localhost:3000, the MCP endpoint on http://localhost:4000/mcp and Swagger docs on http://localhost:4000/api/docs. Three environment variables are required: DATABASE_URL (a PostgreSQL connection string), JWT_SECRET (at least 32 characters) and ENCRYPTION_KEY (exactly 32 characters). Register the first account the moment setup finishes — the first user to register becomes Admin — and bind the UI to 127.0.0.1 or firewall it until you have. The AI passes for graph enrichment and skill generation are off by default and need both a global env flag and a per-workspace switch; they run against OpenAI, OpenRouter or Anthropic. The graph, manual editing and the MCP tool work with no LLM key at all. A hosted demo endpoint is published at https://cloud.anythingmcp.com/mcp/demo.
Setup effort
Build from source — clone the repository, then follow the steps on this page and add the configuration for your client
USE CASES
Giving an assistant an API you already run
Import the OpenAPI or Postman spec, rename and describe the tools so the model reads intent rather than endpoint names, then add the gateway URL to Claude as a custom connector.
Letting agents query a production database safely
A database connector auto-generates query tools for seven engines; role-level whitelisting decides which of them a given user's agent can see, and every call lands in the audit log.
Putting a legacy SOAP service in front of a modern agent
WSDL is parsed automatically and WS-Security is one of the supported auth modes, so the bridge is configuration rather than a new service to write and maintain.
Chaining two systems the agent has never seen together
The agent asks how to obtain something and gets the path across connectors from the workspace graph, instead of guessing which tool feeds which.
Collapsing several MCP servers into one endpoint
The MCP-to-MCP bridge aggregates existing servers behind the same gateway, so clients get one URL, one auth mode and one audit log.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation. The only built-in tool is kg_how_to_obtain; other tools come from specs or databases you import, so a fresh install shows none. The 175+ adapters are not tools.
INSTALLATION
Connect your client
Clone the repository, then follow the steps on this page and add the configuration for your client. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp && ./setup.shWhen setup finishes, open http://localhost:3000 and register the first user - they automatically become the admin.
MCP Clients
Claude Code
claude mcp add --transport http anythingmcp http://localhost:4000/mcp --header "Authorization: Bearer <YOUR_MCP_BEARER_TOKEN>"<YOUR_MCP_BEARER_TOKEN> is the MCP_BEARER_TOKEN you set in AnythingMCP's .env; it is accepted when MCP_AUTH_MODE is legacy or both (the default, oauth2, does not take it). To use a per-user MCP API key generated in the AnythingMCP UI instead, send it as an X-API-Key header instead of Authorization.
Cursor
{
"mcpServers": {
"anythingmcp": {
"url": "http://localhost:4000/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MCP_BEARER_TOKEN>"
}
}
}
}<YOUR_MCP_BEARER_TOKEN> is the MCP_BEARER_TOKEN you set in AnythingMCP's .env; it is accepted when MCP_AUTH_MODE is legacy or both (the default, oauth2, does not take it). To use a per-user MCP API key generated in the AnythingMCP UI instead, send it as an X-API-Key header instead of Authorization.
ChatGPT
ChatGPT connects from the internet, so AnythingMCP must be reachable at a public HTTPS URL such as <YOUR_SERVER_URL>/mcp — a localhost URL will not work.
In AnythingMCP's .env, set MCP_AUTH_MODE=legacy (or both) and MCP_BEARER_TOKEN to a secure token.
In ChatGPT, open your profile icon → Settings → MCP Servers (or Connected Tools) → Add MCP Server.
Enter your server URL, choose Bearer Token authentication, paste your MCP_BEARER_TOKEN value and click Connect.
Any MCP client
POST http://<YOUR_SERVER>:4000/mcp (Streamable HTTP; OAuth2 discovery at /.well-known/oauth-authorization-server)