LabscoMCP early access ↗
ProjectAtlantis-devMCP SERVER

Project Atlantis

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.

by ProjectAtlantis-dev ↗MCP Plumbing: Proxies, Registries & InspectorsCommunity

LABSCO 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 client, Lobster, is the atlantis-mcp package on npm, which that claude mcp add line runs through npx.

Setup effort

Build from source