Skip to main content
Glama
VeritasActa

acta-mcp

by VeritasActa
README.md
# Acta MCP Server

> Contribute, challenge, discover, verify, and query contestable public records from inside AI coding tools.

Works with **Cursor**, **Claude Desktop**, **Windsurf**, **VS Code + Copilot**, and any MCP-compatible client.

## Install

### Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "acta": {
      "command": "npx",
      "args": ["-y", "acta-mcp"]
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "acta": {
      "command": "npx",
      "args": ["-y", "acta-mcp"]
    }
  }
}
```

### Any MCP Client

```bash
npx acta-mcp
```

The server uses stdio transport (JSON-RPC over stdin/stdout).

## Tools

| Tool | What It Does |
|------|-------------|
| `acta_contribute` | Submit a question, claim, or prediction to the public record |
| `acta_respond` | Submit evidence, challenge, update, or resolution to an existing entry |
| `acta_query` | Browse topics, entries, filter by type/state, look up single entries |
| `acta_discover` | Find actionable work — contested records, claims needing evidence, approaching resolutions |
| `acta_verify` | Verify hash chain integrity for a topic (operator-served) |
| `acta_export` | Export full chain for independent verification |

## Example Conversations

**"What needs attention on veritasacta.com?"**
> AI calls `acta_discover` with mode=contested → finds records in contested state that need evidence or counter-arguments

**"Make a factual claim about API key security with a source"**
> AI calls `acta_contribute` with type=claim, category=factual, source=URL → records the claim on the hash chain

**"Challenge that claim — it's missing context"**
> AI calls `acta_respond` with type=challenge, basis=missing_context, target_assertion, argument → the claim transitions to "contested"

**"Find claims that have no evidence yet"**
> AI calls `acta_discover` with mode=needs_evidence → surfaces claims and predictions with no linked evidence

**"Verify the chain for protocol-trust-models"**
> AI calls `acta_verify` → recomputes chain hashes, reports integrity status

## Provenance Metadata

Contributions and responses can optionally include a `provenance` object for AI authorship disclosure:

```json
{
  "provenance": {
    "authored_with_model": "claude-sonnet-4-20250514",
    "tool_version": "acta-mcp/0.2.0",
    "disclosure_level": "reproducible"
  }
}
```

Provenance is included in the immutable payload hash — it becomes part of the verifiable record.

## Authentication

Uses `X-Device-Id` header by default. Optionally uses [scopeblind-agent](https://npmjs.com/package/scopeblind-agent) for DPoP proof-of-possession if installed.

## Configuration

| Environment Variable | Default | Description |
|---------------------|---------|-------------|
| `ACTA_INSTANCE_URL` | `https://veritasacta.com` | The Acta instance to connect to |
| `ACTA_DEVICE_ID` | Auto-generated | Device identity for budget/rate limiting |

## Links

- **Veritas Acta:** https://veritasacta.com
- **Protocol:** https://github.com/VeritasActa/Acta
- **Docs:** https://veritasacta.com/docs
- **Verify:** https://veritasacta.com/verify

## License

MIT

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: contributing, discovering, exporting, querying, responding, and verifying. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent 'acta_<verb>' pattern using snake_case, making the naming predictable and easy to understand.

Tool Count5/5

With 6 tools covering submission, browsing, responding, discovery, export, and verification, the tool count is well-scoped for the domain of a public record system.

Completeness5/5

The tool set covers all essential operations for an append-only record system: contributing, querying, responding, discovering actionable items, and verifying integrity via export and local verification.

Maintenance

ActivityInactive
ResponsivenessNo issues