Labsco
MCP SERVER

Project Atlantis

by ProjectAtlantis-dev

Write a Python function, drop it in a folder, and it becomes a tool your bot can call — with hot reload and no MCP registration dance.

MCP Plumbing: Proxies, Registries & Inspectors
Summary
Adding a tool is adding a file, not editing a server.

The design decision that matters is keeping your functions out of this repository entirely — `dynamic_functions/` is gitignored and expected to be a symlink to your own repo, which keeps the boundary between platform code and your tools explicit for both you and any coding agent working in the tree. When a call fails with an unknown tool, the server log under `python-server/runServer.log` is where the answer is; handshake errors almost always mean the ports do not match.

What it is

A Python host that runs locally and lets you install functions and third-party MCP servers on the fly. Your own functions live as plain Python files under `dynamic_functions/`, are loaded at start and reloaded when modified; third-party MCP servers are JSON configs under `dynamic_servers/`. It can run standalone or connect to the Atlantis cloud so tools can be shared between people and machines.

What you get
  • Dynamic functions: a decorated Python function becomes a tool, with `@visible`, `@public` and `@protected` controlling who sees it
  • Folder structure is the namespace — the folder name is the app name, and subfolders nest
  • Compound tool names disambiguate collisions using owner, remote, app, location and function, separated by asterisks, and you only supply as many fields as needed
  • Dynamic MCP servers: drop in a config with the usual mcpServers block and start it to fetch its tool list
  • Lobster, the bundled client, exposes `readme`, `command` and `chat` to Claude Code or Codex
  • A runtime API for functions covering client logging, streaming, HTML, image and video responses, click and upload callbacks, and persistent shared state
Requirements

Python for the server — 3.13 is the most stable because of async support — plus Node for the client, and both uv/uvx and node/npx. Set up a virtual environment under `python-server`, install from requirements.txt, then edit the runServer script with your email, api key, host, port and a service name unique across your machines; the default local MCP port is 8000. Connect the client with `claude mcp add atlantis -- npx atlantis-mcp --port 8000`. Provider keys such as `OPENROUTER_API_KEY` and `ANTHROPIC_API_KEY` go in the environment. The npm client package is `project-atlantis`, version 1.0.0.

Setup effort

One command plus a key — npx atlantis-mcp --port 8000, then supply credentials