readmeLABSCO 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,@publicand@protectedcontrolling 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,commandandchatto 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 client, Lobster, is the atlantis-mcp package on npm, which that claude mcp add line runs through npx.
Setup effort
Build from source
USE CASES
Turning a script into a tool
Put the decorated function in an app folder and it is callable without registering anything.
Iterating on a tool while using it
Edit the file and the server reloads it, instead of restarting the client.
Adding a third-party MCP server
Drop in its JSON config, start it, and its tools join the same host.
Keeping your tools in your own repository
Symlink your functions repo into the server so platform updates never touch your code.
Debugging a call that returns unknown tool
Tail the server log and check whether the tool registered and which port the client used.
3 tools
Listed in project docs. Your client may show a different list.
commandchatBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
- Python — the README finds 3.13 the most stable
- Node.js with npx, for the atlantis-mcp client
- The Python server running locally on port 8000 before the client connects
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/ProjectAtlantis-dev/atlantis-mcp-server
cd atlantis-mcp-server/python-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtEdit the runServer script in the python-server folder: set --email to the email you use for Project Atlantis and --service-name to a name unique across your machines. --api-key ships as foobar, the default key your remote connects with; the README says to change it online, and the api command generates a new one
Start the Python server from the python-server folder and leave it running (the client connects to it on port 8000):
bash runServerSign into https://www.projectatlantis.ai under the same email; your remote then connects with that email and api key
MCP Clients
Claude Code
claude mcp add atlantis -- npx atlantis-mcp --port 8000Codex
codex mcp add atlantis -- npx atlantis-mcp --port 8000