Metadata-Version: 2.4
Name: plasmiddb-mcp
Version: 0.1.0
Summary: Model Context Protocol server for the PlasmidDB REST API
Author: PlasmidDB
License: MIT
Keywords: mcp,plasmid,addgene,genbank,biology
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: mcp>=1.10
Requires-Dist: httpx>=0.27

# plasmiddb-mcp

Model Context Protocol (MCP) server for the [PlasmidDB](https://github.com/mtc/plasmiddb)
REST API. Exposes plasmid / feature / variant lookup and (for superuser tokens) CRUD
tools to any MCP client — Claude Desktop, Kimi CLI, Cherry Studio, `mcp` CLI.

## Install

```bash
pip install plasmiddb_mcp-0.1.0-py3-none-any.whl
```

## Configure

Set two environment variables:

| Variable              | Required | Default                    |
|-----------------------|----------|----------------------------|
| `PLASMIDDB_TOKEN`     | yes      | —                          |
| `PLASMIDDB_BASE_URL`  | no       | `http://localhost:8013`    |

Get a token from your PlasmidDB account: **Profile → API tokens → New token**.

## Run

```bash
PLASMIDDB_TOKEN=... plasmiddb-mcp       # stdio, reads from the MCP client
```

## MCP client configuration

Claude Desktop / Kimi CLI (`~/.kimi/mcp.json`, `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "plasmiddb": {
      "command": "plasmiddb-mcp",
      "env": {
        "PLASMIDDB_TOKEN": "your-token-here",
        "PLASMIDDB_BASE_URL": "http://172.18.224.76:5000/plasmids"
      }
    }
  }
}
```

Cherry Studio → Settings → MCP Servers → Add:

- **Type**: `stdio`
- **Command**: `plasmiddb-mcp`
- **Env**: `PLASMIDDB_TOKEN`, `PLASMIDDB_BASE_URL`

## Tools

- `plasmid_list` / `plasmid_get` / `plasmid_create` / `plasmid_update` / `plasmid_delete`
- `feature_list` / `feature_get` / `feature_create` / `feature_update` / `feature_delete`
- `variant_list` / `variant_get` / `variant_create` / `variant_update` / `variant_delete`

Write tools (`create` / `update` / `delete`) return a structured 403 error if called
with a non-superuser token.
