# SPARKIT-science/sparkit-mcp [Health: Active]

**Category:** 🔬 Research  
**Repository:** https://github.com/SPARKIT-science/sparkit-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 24  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/sparkit-science-sparkit-mcp

## Description
MCP server for SPARKIT, a scientific research agent that searches the literature, reads papers, and returns cited Markdown reports. Submit a question via the research tool from Claude Desktop / Cursor / Claude Code; get back a 90-second cited report without leaving the chat. uv tool install sparkit-mcp or pip install sparkit-mcp.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "sparkit-mcp": {
    "command": "uvx",
    "args": ["sparkit-mcp"],
    "env": {
      "SPARKIT_API_KEY": "",
      "SPARKIT_API_BASE": "",
      "SPARKIT_API_TIMEOUT_SECONDS": ""
    }
  }
}
```

**Requires environment variables:** `SPARKIT_API_KEY`, `SPARKIT_API_BASE`, `SPARKIT_API_TIMEOUT_SECONDS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation & README

# sparkit-mcp

MCP server for [SPARKIT](https://sparkit.science) — 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
  when `research` returned before the job finished, or to revisit a
  past report.

## Install

```bash
uv tool install sparkit-mcp
```

Or with pip:

```bash
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

1. Sign up at https://app.sparkit.science/signup (Try-it costs $10 for
   5 queries; subscriptions start at $50/mo).
2. Visit https://app.sparkit.science/keys and create a key.
3. 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:

```json
{
  "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:

```json
"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):

```json
{
  "mcpServers": {
    "sparkit": {
      "command": "sparkit-mcp",
      "env": {
        "SPARKIT_API_KEY": "sk_sparkit_..."
      }
    }
  }
}
```

Reload Cursor (`Cmd+Shift+P` → "Reload Window").

### Claude Code

```bash
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.

