> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install the server, connect Modal for remote compute, and register it with an agent

The MCP server ships inside `proto-tools`, behind an optional extra.

Tools run either on this machine or on remote compute, and you choose which when you register the
server. **Locally**, `proto-tools` builds each tool's environment on first use, so no account and
no setup is needed beyond the install; tools use whatever compute this machine has, so a tool that
needs a GPU needs one here. **Remote tools run on your own Modal account** — connect it if you
want remote compute, GPU models in particular.

<Steps>
  <Step title="Install the server">
    The server depends on `fastmcp`, which is not part of the base install:

    ```bash bash icon="terminal" theme={null}
    pip install "proto-tools[mcp] @ git+https://github.com/evo-design/proto-tools.git"
    ```

    This installs a `proto-tools-mcp` command. Check it resolves:

    ```bash bash icon="terminal" theme={null}
    proto-tools-mcp --help
    ```

    <Note>
      A plain `proto-tools` install does not include the server. Starting it without the extra
      exits with a message naming the missing dependency.
    </Note>
  </Step>

  <Step title="Connect Modal, for remote compute">
    Skip this step to run tools on this machine only.

    The server defaults to running tools on Modal, which needs a credential here:

    ```bash bash icon="terminal" theme={null}
    modal setup
    ```

    This opens a browser, and writes a token to `~/.modal.toml` when you approve. Nothing is
    pasted, and the credential is not copied into any agent configuration.

    Run `proto-tools doctor` to check the credential, the environment, and what is deployed.

    [Modal Setup](/docs/tools/modal-integration) covers accounts, environments and what it costs.
  </Step>

  <Step title="Register the server with your agent">
    The agent launches the server. You do not run it yourself.

    For Claude Code:

    ```bash bash icon="terminal" theme={null}
    claude mcp add proto-tools --scope user -- proto-tools-mcp
    ```

    For a client configured through JSON, such as Cursor or Claude Desktop:

    ```json json icon="braces" theme={null}
    {
      "mcpServers": {
        "proto-tools": {
          "command": "proto-tools-mcp"
        }
      }
    }
    ```

    Tools run on Modal by default. Add `--device local` to run them on this machine instead.
    The choice becomes the session default, and an agent can override it per call with `run_on`.

    <Note>
      No credential goes into either configuration. The server reads `~/.modal.toml` itself, so
      nothing sensitive is written into an agent's config file.
    </Note>
  </Step>

  <Step title="Deploy the tools you want, if using Modal">
    Running locally, there is nothing to deploy — skip this step.

    A fresh Modal workspace has nothing deployed, and the agent can only run what exists. Deploy a
    tool before asking for it:

    ```bash bash icon="terminal" theme={null}
    proto-tools deploy --apps tmalign
    ```

    Each deploy builds an image in your workspace and takes a few minutes.

    Ask the agent to call `workspace_info` first — it reports which workspace and environment your
    calls reach, and how many tools are deployed.
  </Step>
</Steps>

## Backend requirements

The server resolves its backend at startup, and reports an unusable configuration then rather than
failing on the first call. An agent can send a single call elsewhere by passing `run_on` to
`run_tool` — useful for running one cheap CPU tool locally, or one GPU tool on Modal.

<div className="backend-tabs">
  <Tabs>
    <Tab title="modal">
      Tools run in a Modal workspace you own, and `deploy_tool` is registered. Requires Modal
      credentials. Deployments and runs are billed to that account, and `deploy_tool` asks for
      approval before it builds anything; declining incurs no cost.

      [Modal Integration](/docs/mcp/modal) covers what the server does with Modal;
      [Modal Setup](/docs/tools/modal-integration) covers the account, authentication, and environment.
    </Tab>

    <Tab title="local">
      Tools run in the server's own process. There is nothing to deploy and no credentials to set,
      and every registered tool is available.

      Each tool builds its isolated environment and downloads its model weights on first use, so a
      first call can take several minutes. A tool that requires a GPU requires one on this machine.
    </Tab>
  </Tabs>
</div>

## Other clients

ChatGPT is not currently an option. The ChatGPT app accepts only remote MCP servers reached over
HTTPS, so it cannot launch the local server described here.

## Hosted HTTPS server

<Note>
  Under construction. An HTTPS version of the MCP server is in development, so an agent can use
  proto-tools without a local install. Tools will still run on your own Modal account.
</Note>

## Confirming the connection

The server sends the client a set of instructions for whichever backend it resolved, and the
client passes them to the agent, so an agent reaches for these tools on its own without being
prompted.

To check a setup directly, ask for them:

* `workspace_info` reports which backend the server resolved, and on Modal which workspace and
  environment calls go to and how many apps are deployed.
* `list_tools` reports what you have deployed. Pass `deployed_only=false` to see the full catalog
  of what you could deploy.

## Next Steps

<CardGroup cols={2}>
  <Card title="Server Functions" icon="wrench" href="/docs/mcp/functions">
    Reference for each function the server exposes, with its parameters and behavior.
  </Card>

  <Card title="Cloud Inference" icon="cloud" href="/docs/tools/guides/cloud-inference">
    Deploy tools to your own Modal workspace, the backend the server uses by default.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/docs/tools/guides/quickstart">
    The Input plus Config to Output contract the server exposes, from Python.
  </Card>

  <Card title="Tools" icon="boxes" href="/docs/tools/introduction">
    The catalog of bioinformatics models available through the server.
  </Card>
</CardGroup>
