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.
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.
- 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
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.
One command plus a key — npx atlantis-mcp --port 8000, then supply credentials
