The Problem

Companies run many legacy REST, SOAP, GraphQL or SQL services that have no native AI interface. Exposing those services to LLMs normally requires custom middleware, costly engineering, and often a separate “MCP server” that sits between the LLM and the data source.

What This Does

AnythingMCP is a self‑hosted gateway that turns any exposeable service into a connector for Claude, ChatGPT or Copilot. It ships 190 ready‑made adapter definitions (e.g. DHL, Datev, Weclapp) plus a plug‑in for arbitrary OpenAPI, Postman, WSDL, GraphQL or SQL endpoints.

The gateway is a NestJS/Express backend (packages/backend/src/main.ts) that exposes a RESTful API. The front‑end is a Next.js app (packages/frontend/src/components/tool-editor/index.tsx) that lets you upload or edit an adapter JSON, configure credentials, and bind it to a workspace. Credentials are stored AES‑256‑GCM‑encrypted; audit logs keep the raw upstream response on the host.

How It Is Wired

  • Entry point – packages/backend/src/main.ts calls NestFactory.create(AppModule) and starts the HTTP server on ${process.env.PORT}.
  • AppModule imports ConnectorModule, AuthModule, AuditModule.
  • ConnectorModule loads adapters from packages/backend/src/connectors and registers them in ConnectorService.
  • ConnectorService exposes invoke(name, params) which resolves the adapter, injects credentials via SecretsUtil (packages/backend/src/common/secrets.util.ts), and forwards the request to the target endpoint.
  • SecretsUtil decrypts stored secrets; its presence is flagged by the static audit as a Low/Security issue because the pattern matches potential secret leakage.
  • AuditModule writes the upstream response to a local log file; the log is only written once per invocation, so the blast radius is confined to the service’s own filesystem.
  • Front‑end (tool‑editor/index.tsx) posts the adapter JSON to /api/adapters which hits the same ConnectorService for persistence.
  • Docker (Dockerfile, docker-compose.quickstart.yml) builds a single image that contains the compiled TS (dist/) and starts the NestJS server. The quickstart script pulls the image, generates a .env with JWT_SECRET and ENCRYPTION_KEY, and spins up the stack with docker compose.

How To Use It

  1. Setup ``bash mkdir anythingmcp && cd anythingmcp curl -fsSLo docker-compose.yml \ https://raw.githubusercontent.com/moses-y/anythingmcp/main/docker-compose.quickstart.yml printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env docker compose up -d ` The command uses the provided docker-compose.quickstart.yml and the Dockerfile` in the repo root.
  1. Configuration - .env must contain JWT_SECRET, ENCRYPTION_KEY, and database URLs (e.g. POSTGRES_URL). - Adapter credentials are supplied via the front‑end; they are stored in the table connector_secrets encrypted by SecretsUtil.
  1. Running After the containers are up, the gateway is reachable at http://localhost:3000. The LLM receives an MCP URL such as https://localhost:3000/mcp/fieldservice.

Real‑World Use

A field‑service company exposes a REST API that lists technicians’ visits. A user asks Claude: “Which companies did Technician X visit last week?” Claude calls the MCP URL, the gateway forwards the request to the REST endpoint, returns only the mapped fields (companyName, visitDate), and logs the raw response for compliance.

Code Health & Issues

  • Low/Security – 1 path with potential secret leakage: packages/backend/src/common/secrets.util.ts.
  • No other critical issues detected by the static audit.
  • The repo has a full CI pipeline (.github/workflows/ci.yml) and end‑to‑end tests (tests/).
  • Licensing is AGPL‑3.0, so any derivative must also be AGPL‑licensed.

The Bottom Line

AnythingMCP delivers a ready‑to‑run MCP gateway with minimal configuration. It is ideal for internal teams that need to expose legacy systems to LLMs without building custom middleware. The AGPL license and the need to run Docker locally may limit adoption in highly regulated or proprietary environments, but for open‑source or in‑house projects the value outweighs the trade‑offs.