MCP server for the Strand Platform — exposes upload / predict / job lifecycle to Claude, Cursor, and any other MCP-aware agent.
Project description
strand-mcp
MCP server for the Strand Platform. Exposes upload / estimate / predict / job-lifecycle as MCP tools so any agent (Claude Code, Cursor, etc.) can run H&E → spatial-proteomics inference end-to-end.
Install
pip install strand-mcp
Or from this repo:
cd sdks/mcp-server
pip install -e .
Auth
Generate an API key at https://app.strandai.com/settings/api-keys and export it:
export STRAND_API_KEY=sk-strand-...
The server also reads STRAND_BASE_URL (defaults to https://app.strandai.com) if you need to point at staging.
Wire into Claude Code
Add to ~/.claude/mcp.json (or your project's .mcp.json):
{
"mcpServers": {
"strand": {
"command": "strand-mcp",
"env": {
"STRAND_API_KEY": "sk-strand-..."
}
}
}
}
Then in Claude Code you can ask things like:
Upload
~/slides/biopsy.svsto Strand, run prediction for CD3, CD8, and Ki67, wait for the job, and download results into~/results/.
Claude calls the tools in sequence — no glue code needed.
Tools
| Tool | Purpose |
|---|---|
upload_slide |
Upload a local WSI; returns upload_id + dimensions |
estimate_run |
Patch count + credit cost for a (upload_id, markers) pair |
set_sample_mpp |
Set user-reported slide microns per pixel before inference |
submit_run |
Kick off a Lattice inference job; returns job_id |
get_job |
Point-in-time status snapshot |
cancel_job |
Cancel an in-flight job and refund its reserved credits |
wait_for_job |
Block until terminal state (uses SSE under the hood) |
download_results |
Pull OME-Zarr results into a local directory |
download_ome_tiff |
Render and download a completed job as a single OME-TIFF file |
Smoke test
STRAND_API_KEY=sk-strand-... strand-mcp
The server listens on stdio and waits for an MCP client to attach.
Dev
cd sdks/mcp-server
pip install -e ".[dev]" || pip install -e .
python -m strand_mcp
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strand_mcp-0.1.0.tar.gz.
File metadata
- Download URL: strand_mcp-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61c54648b6f494346dde0f44b357c01bf102d26f736a3cd88a13c9f645d8d154
|
|
| MD5 |
92a66666496fc406a010002f828a7a27
|
|
| BLAKE2b-256 |
4e4919b56013a380de8cad7581298c2334252107fed4bde67e58415f04b8560e
|
Provenance
The following attestation bundles were made for strand_mcp-0.1.0.tar.gz:
Publisher:
sdks-publish.yml on Strand-AI/strand-official
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strand_mcp-0.1.0.tar.gz -
Subject digest:
61c54648b6f494346dde0f44b357c01bf102d26f736a3cd88a13c9f645d8d154 - Sigstore transparency entry: 2310179985
- Sigstore integration time:
-
Permalink:
Strand-AI/strand-official@77b787188561b5567322d913182f36b00964b219 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Strand-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
sdks-publish.yml@77b787188561b5567322d913182f36b00964b219 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file strand_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strand_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cc4cc436c204ff7c224b69d813ade0c062cbd826ef4c3a49fbf566ca77fa195
|
|
| MD5 |
64e462879a21f5e3a7043e12430ad0d8
|
|
| BLAKE2b-256 |
ac357badcf88c87e145dd7534356bb5608826cd6413d3fbe08ec3837a5d74613
|
Provenance
The following attestation bundles were made for strand_mcp-0.1.0-py3-none-any.whl:
Publisher:
sdks-publish.yml on Strand-AI/strand-official
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strand_mcp-0.1.0-py3-none-any.whl -
Subject digest:
5cc4cc436c204ff7c224b69d813ade0c062cbd826ef4c3a49fbf566ca77fa195 - Sigstore transparency entry: 2310179994
- Sigstore integration time:
-
Permalink:
Strand-AI/strand-official@77b787188561b5567322d913182f36b00964b219 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Strand-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
sdks-publish.yml@77b787188561b5567322d913182f36b00964b219 -
Trigger Event:
workflow_dispatch
-
Statement type: