MCP server for SPARKIT — call the scientific research agent from Claude Desktop, Cursor, and other MCP clients.
Project description
sparkit-mcp
MCP server for SPARKIT — call the scientific research agent from Claude Desktop, Cursor, Claude Code, or any other MCP-compatible client.
Two tools are exposed:
research— submit a scientific question. SPARKIT searches the literature, reads the relevant papers, and returns a cited Markdown report. Blocks until the job finishes (default 4 min) and returns the full report inline.get_job_status— fetch a previously-submitted job by id. Useful whenresearchreturned before the job finished, or to revisit a past report.
Install
uv tool install sparkit-mcp
Or with pip:
pip install sparkit-mcp
Either installs a sparkit-mcp console script. (Pre-release: install
straight from GitHub with
uv tool install "git+https://github.com/SPARKIT-science/sparkit-mcp.git"
until the first PyPI release lands.)
Get an API key
- Sign up at https://app.sparkit.science/signup (Try-it costs $10 for 5 queries; subscriptions start at $50/mo).
- Visit https://app.sparkit.science/keys and create a key.
- Copy the key — it's shown only once.
Configure your MCP client
Claude Desktop
Edit claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"sparkit": {
"command": "sparkit-mcp",
"env": {
"SPARKIT_API_KEY": "sk_sparkit_..."
}
}
}
}
Restart Claude Desktop. You should see sparkit appear in the tools
icon next to the chat input.
If sparkit-mcp isn't on Claude Desktop's PATH (common with uv tool),
use the absolute path:
"command": "/Users/you/.local/bin/sparkit-mcp"
(Find the path with which sparkit-mcp after uv tool install.)
Cursor
Edit ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
{
"mcpServers": {
"sparkit": {
"command": "sparkit-mcp",
"env": {
"SPARKIT_API_KEY": "sk_sparkit_..."
}
}
}
}
Reload Cursor (Cmd+Shift+P → "Reload Window").
Claude Code
claude mcp add sparkit -e SPARKIT_API_KEY=sk_sparkit_... -- sparkit-mcp
Try it
Once configured, ask the LLM:
Use SPARKIT to look up the most recent literature on the role of WRNIP1 as a synthetic-lethal target in cancer.
The LLM will call research. Expect a 60-180s wait, then a Markdown
report with inline citations and a numbered Sources list.
Configuration
| Env var | Default | Description |
|---|---|---|
SPARKIT_API_KEY |
(required) | Bearer key from https://app.sparkit.science/keys. |
SPARKIT_API_BASE |
https://jlsteenwyk--sparkit-api-web.modal.run |
Override the API base URL. Useful for staging or self-hosted deployments. |
SPARKIT_API_TIMEOUT_SECONDS |
30 |
Per-HTTP-request timeout. Doesn't affect total wait time for research; that's max_wait_seconds. |
Tool reference
research(question, response_format?, include_citations?, max_wait_seconds?)
| Arg | Type | Default | Description |
|---|---|---|---|
question |
string | — | The scientific question. Required. Be specific. |
response_format |
"full" or "brief" |
"full" |
Length of the returned Markdown report. |
include_citations |
boolean | true |
Keep true for sourced reports. |
max_wait_seconds |
int (30-540) | 240 |
How long to block waiting before returning the job_id with instructions to poll. |
Returns Markdown. On timeout, returns a status line with the job_id so
the LLM can call get_job_status later.
get_job_status(job_id)
Returns the cited Markdown report if the job has completed, a status line if it's still running, or an error message otherwise.
Troubleshooting
Authentication failed — SPARKIT_API_KEY isn't set or is invalid.
Check claude_desktop_config.json for typos; restart Claude Desktop
after edits.
Quota exhausted — out of monthly queries / Try-it credits. Visit https://app.sparkit.science/billing.
Tool isn't appearing in Claude Desktop — check the Claude Desktop log:
- macOS:
~/Library/Logs/Claude/mcp-server-sparkit.log - Windows:
%LOCALAPPDATA%\Claude\Logs\mcp-server-sparkit.log
The most common issue is command: sparkit-mcp not being on PATH;
substitute the absolute path from which sparkit-mcp.
Job times out — max_wait_seconds cap is 540s (9 min). For very
deep questions, submit then poll get_job_status instead of waiting
inline. SPARKIT will also auto-cancel jobs that exceed its own
internal limit.
License
MIT.
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 sparkit_mcp-0.1.0.tar.gz.
File metadata
- Download URL: sparkit_mcp-0.1.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e83b1833975ba44bc921e5bf95070b9a7bb3cf1feedb67d3d4d99ef8e27f7b1
|
|
| MD5 |
3a9dd103ebf830d21f15702a30843288
|
|
| BLAKE2b-256 |
eb8f1836da2c246c02008d362d7368ad465f6f8be11a09a29953d6ccb92253c2
|
Provenance
The following attestation bundles were made for sparkit_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on SPARKIT-science/sparkit-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sparkit_mcp-0.1.0.tar.gz -
Subject digest:
4e83b1833975ba44bc921e5bf95070b9a7bb3cf1feedb67d3d4d99ef8e27f7b1 - Sigstore transparency entry: 1440245413
- Sigstore integration time:
-
Permalink:
SPARKIT-science/sparkit-mcp@82e83f76e4664fe46efcc880121aadd9fd8dc4a6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SPARKIT-science
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@82e83f76e4664fe46efcc880121aadd9fd8dc4a6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file sparkit_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sparkit_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb2ed15793c6e3790e2f9f91f6eee12805a2b1e5588395a104861b8911ab1a61
|
|
| MD5 |
e9aa524d83dff0be9200aa0448a52b30
|
|
| BLAKE2b-256 |
7f6b1ad3a6d626432830fcbb2eed12a55d61f6c5509a932181ee9331e6e77fac
|
Provenance
The following attestation bundles were made for sparkit_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on SPARKIT-science/sparkit-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sparkit_mcp-0.1.0-py3-none-any.whl -
Subject digest:
fb2ed15793c6e3790e2f9f91f6eee12805a2b1e5588395a104861b8911ab1a61 - Sigstore transparency entry: 1440245432
- Sigstore integration time:
-
Permalink:
SPARKIT-science/sparkit-mcp@82e83f76e4664fe46efcc880121aadd9fd8dc4a6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/SPARKIT-science
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@82e83f76e4664fe46efcc880121aadd9fd8dc4a6 -
Trigger Event:
release
-
Statement type: