Skip to main content
Glama
skyphusion-labs

@skyphusion/common-thread-mcp

Official
README.md
# @skyphusion/common-thread-mcp

**MIT** [Model Context Protocol](https://modelcontextprotocol.io/) server for [Common Thread](https://github.com/skyphusion-labs/common-thread): drive the full investigation API from an agent (create cases, seeds, Apify ingest, BYOK attribution, evidence packets).

| | |
|--|--|
| **npm** | [`@skyphusion/common-thread-mcp`](https://www.npmjs.com/package/@skyphusion/common-thread-mcp) |
| **Repo** | https://github.com/skyphusion-labs/common-thread-mcp |
| **Product UI** | https://common-thread.skyphusion.org |
| **HTTP contract** | [common-thread `docs/API.md`](https://github.com/skyphusion-labs/common-thread/blob/main/docs/API.md) |
| **License** | MIT (this package). Product: AGPL implementation + CC-BY paper |

## Documentation

| Doc | Audience |
|-----|----------|
| **[docs/mcp.md](docs/mcp.md)** | Full guide: install, agent config, auth, every tool, troubleshooting |
| **[docs/PARITY.md](docs/PARITY.md)** | Website UI vs MCP tools |
| **[docs/SECURITY.md](docs/SECURITY.md)** | Tokens, BYOK, hosted vs self-host |
| [CLAUDE.md](CLAUDE.md) | Agent working notes for this repo |

## Quick start

```bash
npx -y @skyphusion/common-thread-mcp
```

Claude Desktop / Claude Code example:

```json
{
  "mcpServers": {
    "common-thread": {
      "command": "npx",
      "args": ["-y", "@skyphusion/common-thread-mcp"],
      "env": {
        "COMMON_THREAD_API_URL": "https://common-thread-backend.skyphusion.org",
        "COMMON_THREAD_AI_GATEWAY_URL": "https://gateway.ai.cloudflare.com/v1/ACCOUNT/GATEWAY/anthropic",
        "COMMON_THREAD_ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}
```

1. Call **`create_investigation`** and **store `access_token` once**.
2. Set `COMMON_THREAD_INVESTIGATION_ID` + `COMMON_THREAD_ACCESS_TOKEN`, or pass them on every tool.
3. Ingest → features → **`attribute`** (BYOK on public host) → **`get_packet`**.

## Environment (summary)

| Variable | Purpose |
|----------|---------|
| `COMMON_THREAD_API_URL` | Backend base (default hosted backend) |
| `COMMON_THREAD_ACCESS_TOKEN` / `COMMON_THREAD_INVESTIGATION_ID` | Defaults for tools |
| `COMMON_THREAD_AI_GATEWAY_URL` + Anthropic key or `COMMON_THREAD_CF_AIG_TOKEN` | BYOK for public attribution |

Full table: [docs/mcp.md#environment](docs/mcp.md#environment).

## Tools (23)

Lifecycle: `health`, `create_investigation`, `get_investigation`, `update_investigation_metadata`, `seal_investigation`, `delete_investigation`, `investigation_summary`

Seeds: `list_seeds`, `add_seed`, `remove_seed`

Data: `list_features`, `ingest_apify_twitter`, `get_ingest_job`

Attribution: `attribute`, `get_attribution_job`, `list_runs`, `get_run`

Packets / archive: `get_packet`, `list_manifest`, `list_signatures`, `verify_manifest`

Debug: `debug_ingest`, `debug_manifest`

## Hosted API note

The hosted backend is for the public UI and **approved** integrations. Self-host for unrestricted automation, or contact **common-thread@skyphusion.org** before productizing against hosted.

## Develop

```bash
npm ci && npm run typecheck && npm test && npm run build
node dist/index.js
```

## License

MIT. Common Thread product licenses are separate (AGPL-3.0 implementation, CC-BY-4.0 paper).

TDQS

B3.2/5.0

Scored across 23 tools

Disambiguation5/5

Each tool targets a distinct resource or action within the investigation lifecycle, seed management, ingest, attribution, and manifest verification. The async job polling pairs (ingest_apify_twitter/get_ingest_job, attribute/get_attribution_job) are clearly separated. No two tools have overlapping responsibilities.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (list_, create_, get_, update_, delete_, add_, remove_, verify_, debug_). Minor deviations include 'health', 'investigation_summary', and 'attribute', which lack the standard verb prefix or object, but overall the naming is predictable.

Tool Count3/5

23 tools is at the heavy end for a single server, covering a full investigation pipeline with ingest, attribution, and manifest verification. While each tool has a specific purpose, the sheer number may overwhelm agents and suggests some tools (e.g., debug_* utilities) could be split into a separate server.

Completeness4/5

The tool surface covers the core workflow: create investigation, manage seeds, ingest data, run attribution, view runs, retrieve packets, and verify manifests. Missing features like listing all investigations or updating seeds are minor and can be worked around.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive