Skip to main content
Glama
securecoders

Parallect MCP Server

by securecoders
README.md
# Parallect MCP Server

A [Model Context Protocol](https://modelcontextprotocol.io/) server for [Parallect.ai](https://parallect.ai) — multi-provider deep research from AI.

This MCP server gives AI assistants (Cursor, Claude Desktop, Claude Code, etc.) access to Parallect's deep research capabilities: submit queries, track progress, retrieve synthesized reports with cross-referenced citations, and explore claims with full evidence chains.

## Quick Start

### Cursor

Add to your Cursor MCP settings (`.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "parallect": {
      "command": "npx",
      "args": ["-y", "@parallect/mcp-server"],
      "env": {
        "PARALLECT_API_KEY": "par_live_your_key_here"
      }
    }
  }
}
```

### Claude Desktop

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "parallect": {
      "command": "npx",
      "args": ["-y", "@parallect/mcp-server"],
      "env": {
        "PARALLECT_API_KEY": "par_live_your_key_here"
      }
    }
  }
}
```

### Claude Code

```bash
claude mcp add parallect -- npx -y @parallect/mcp-server
```

Then set `PARALLECT_API_KEY` in your environment.

## Transport Modes

The server supports two transport modes: **stdio** for local MCP clients and **HTTP** for hosted/remote deployments.

### Stdio (Local)

Used by Cursor, Claude Desktop, Claude Code, and other local MCP clients. The API key is set via environment variable and used for all requests.

### Hosted HTTP

Runs as a standalone HTTP server. Each client authenticates with their own `Authorization: Bearer <token>` header, which is passed through to the Parallect API.

```bash
# Start the HTTP server
PORT=8080 PARALLECT_API_URL=https://parallect.ai npm run start:http
```

Clients send MCP JSON-RPC messages via `POST /mcp` with their API key as a Bearer token:

```bash
curl -X POST http://localhost:8080/mcp \
  -H "Authorization: Bearer par_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{...},"id":1}'
```

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `PORT` | No | `8080` | HTTP server listen port |
| `PARALLECT_API_URL` | No | `https://parallect.ai` | API base URL |

No `PARALLECT_API_KEY` env var is needed in HTTP mode — each request carries its own token.

## Configuration (stdio mode)

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `PARALLECT_API_KEY` | Yes | — | Your Parallect API key (`par_live_...`) |
| `PARALLECT_API_URL` | No | `https://parallect.ai` | API base URL (for self-hosted or dev) |

Get your API key at [parallect.ai/settings](https://parallect.ai/settings).

## Available Tools

| Tool | Description |
|------|-------------|
| `research` | Submit a deep research query across multiple AI providers |
| `research_status` | Check progress of a running research job |
| `get_results` | Retrieve the synthesized report, citations, and claims |
| `follow_up` | Pursue follow-on research in the same thread |
| `list_threads` | List your recent research threads |
| `get_thread` | Get a thread with all messages, jobs, and results |
| `balance` | Check your credit balance and recent transactions |
| `usage` | View spend analytics by provider and time period |
| `list_providers` | See available research providers and budget tiers |
| `search_claims` | Search and filter extracted claims |
| `get_claim_evidence` | Get the full evidence chain for a specific claim |

## Development

```bash
npm install
npm run build

# stdio mode
npm start

# HTTP mode
npm run start:http
```

Or for development with auto-reload:

```bash
# stdio
npm run dev

# HTTP
npm run dev:http
```

## License

MIT

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Tools target distinct stages of the research lifecycle and the descriptions explicitly resolve the riskiest overlap (research creates a new thread vs follow_up continues an existing one; research_status vs get_results distinguish progress from output). The only mild overlap is usage (spend analytics) versus balance (credit balance), but both descriptions make the boundary clear.

Naming Consistency3/5

All names are snake_case, but verb styles are mixed: some are verb_noun (get_results, list_threads, search_claims, get_claim_evidence), some are bare nouns (research, usage, balance), and one is noun_status (research_status). It remains readable, but the pattern is not predictable.

Tool Count5/5

Eleven tools sit squarely in the well-scoped 3-15 range. Each tool maps to a distinct capability (submit, poll, retrieve, follow up, browse threads, inspect claims, list providers, view spend/balance) with no filler.

Completeness4/5

The surface covers the full research lifecycle: submission, status polling, result retrieval, follow-ups, thread history, claim/evidence inspection, provider listing, and usage/billing. Minor gaps exist (no explicit cancel-job or delete-thread operation), but agents can work around these.