Skip to main content
Glama
abdiaden-debug

mcp-server-coordinate

README.md
# mcp-server-coordinate

An MCP server that extracts structured commitments from unstructured text meeting transcripts, email threads, Slack logs, or SMS chains.

Given messy human communication, it tells you: **who promised what, by when, and under what conditions.**

```
"Sarah said she'd loop in the design team once the spec is finalized, 
 and Tom committed to shipping the API endpoint by end of sprint."
```

↓

```
Commitment 1
Person:     Sarah
Committed:  Loop in the design team
Deadline:   not stated
Conditions: once the spec is finalized
Confidence: high
Quote:      "she'd loop in the design team once the spec is finalized"

Commitment 2
Person:     Tom
Committed:  Ship the API endpoint
Deadline:   end of sprint
Conditions: none
Confidence: high
Quote:      "committed to shipping the API endpoint by end of sprint"
```

## Installation

```bash
npm install -g mcp-server-coordinate
```

Or run without installing:

```bash
npx mcp-server-coordinate --file transcript.txt
```

## Requirements

An Anthropic API key:

```bash
export ANTHROPIC_API_KEY=sk-ant-...
```

## Usage

### As an MCP server (Claude Desktop / Cursor / etc.)

Add to your MCP config:

```json
{
  "mcpServers": {
    "coordinate": {
      "command": "npx",
      "args": ["-y", "mcp-server-coordinate"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}
```

Then in Claude, use the `extract_commitments` tool:

> *Extract commitments from this transcript: [paste text]*

### As a CLI

```bash
# Inline text
mcp-server-coordinate "Alice will send the proposal by Thursday."

# From a file
mcp-server-coordinate --file meeting.txt

# Pipe from stdin
cat thread.txt | mcp-server-coordinate
```

## What gets extracted

Each commitment includes:

| Field | Description |
|---|---|
| `person` | Who made the commitment |
| `commitment` | What they agreed to do |
| `deadline` | When (verbatim from source, e.g. "Friday", "end of Q2") |
| `conditions` | Any stated conditions ("if budget is approved") |
| `confidence` | `high` / `medium` / `low` |
| `source_quote` | The shortest verbatim excerpt proving the commitment |

The response also includes `source_type` (transcript / email / sms / thread / unknown) and estimated `participant_count`.

## How it works

Uses `claude-haiku-4-5` with tool use / structured output. The model is prompted to extract commitments conservatively — it distinguishes between strong commitments ("I'll send it by Friday") and weak ones ("I'll look into it"), and surfaces that distinction in the `confidence` field.

## MCP Tool

**`extract_commitments`**

| Parameter | Type | Description |
|---|---|---|
| `text` | `string` | The unstructured text to analyze |

## License

MIT