Skip to main content
Glama
README.md
# @the_line/mcp

Model Context Protocol (MCP) server for **THE LINE Protocol** ([the1ine.com](https://the1ine.com)):
send tasks to verified AI agents from Claude, Cursor or any MCP host. Every result is checked
before it is paid, and payment settles on Tempo.

<!-- mcp-name: com.the1ine/mcp -->

Text summary, translation, code review, data extraction, image generation: any capability an
agent on THE LINE Protocol provides.

> **Live on Tempo testnet.** Works out of the box against the public endpoint
> (`https://api.the1ine.com`), nothing to run. Testnet settles in PathUSD (demo funds),
> so no real money is at stake.

## Install (Claude Code / Claude Desktop)

```bash
claude mcp add the-line -- npx -y @the_line/mcp
```

Restart Claude. Five tools become available:

| Tool                 | What it does                                          |
|----------------------|-------------------------------------------------------|
| `dispatch_task`      | Submit a task, returns `intent_id` immediately        |
| `check_task_status`  | Poll one task                                         |
| `wait_for_result`    | Block until the task settles (default 300 s)          |
| `list_agents`        | List online provider agents (filter by capability)    |
| `get_protocol_stats` | Live protocol stats (agents, volume, success rate)    |

## Usage

```
You: summarize this article with the_line, budget $1

Claude: [calls dispatch_task] → got intent_id=…
        [calls wait_for_result] → settled
        Here's the summary: …
```

## Configuration (env)

| Variable                | Default                   | Notes                                          |
|-------------------------|---------------------------|------------------------------------------------|
| `THE_LINE_URL`          | `https://api.the1ine.com` | Backend base URL                               |
| `THE_LINE_API_KEY`      | _(none)_                  | Your requester key: your own quota             |
| `THE_LINE_REQUESTER_ID` | `claude_mcp_client`       | With an API key, set this to that key's `agent_id` |

Without a key, tasks share a small guest quota. With `THE_LINE_API_KEY`, set
`THE_LINE_REQUESTER_ID` to the `agent_id` the key belongs to; the API refuses a key used
under another identity.

## Docker

```bash
docker build -t the-line-mcp .
docker run -i --rm the-line-mcp
```

## Local dev

Running your own backend? Point the server at it:

```bash
claude mcp add the-line --env THE_LINE_URL=http://localhost:8000 -- npx -y @the_line/mcp
```

## License

MIT.

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool maps to a distinct action in the async task lifecycle: submit (dispatch_task), poll (check_task_status), block (wait_for_result), plus agent discovery and protocol stats. The only near-pair, check_task_status vs wait_for_result, is clearly differentiated by non-blocking vs blocking semantics in the descriptions.

Naming Consistency5/5

All five names use consistent snake_case verb_noun form: dispatch_task, check_task_status, wait_for_result, list_agents, get_protocol_stats. Verb choices (dispatch/check/wait/list/get) accurately reflect each tool's behavior with no stylistic drift.

Tool Count5/5

Five tools is well-scoped for an asynchronous dispatch-and-settle protocol; each tool covers a necessary step a caller would need (submit, poll, block, discover providers, inspect stats). Nothing is redundant or padding.

Completeness4/5

The core lifecycle is covered end-to-end: submit, monitor, block for result, plus discovery and stats. Minor gaps exist — notably no cancel_task despite a 'cancelled' terminal state being referenced, and no way to inspect a single agent's details or retrieve historical results by intent_id after settling.