Skip to main content
Glama
VeritasActa

acta-mcp

by VeritasActa

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:

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

Claude Desktop

Add to claude_desktop_config.json:

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

Any MCP Client

npx acta-mcp

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

Related MCP server: briefcase

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:

{
  "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 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

License

MIT

Available Tools

6 tools
acta_contributeA

Submit a typed contribution to the Acta public record. Questions have no evidence burden. Factual claims require a source or reasoning. Opinion/hypothesis claims require uncertainty. Predictions require resolution criteria, date, source, and rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesFull text of the contribution
typeYesContribution type
topicYesTopic slug (e.g. "ai-regulation-2026")
sourceNoURL to supporting evidence (required for factual claims)
categoryNoRequired for claims
reasoningNoReasoning (alternative to source for factual claims)
provenanceNoOptional AI authorship metadata
uncertaintyNoUncertainty statement (required for opinion/hypothesis claims)
resolution_dateNoISO-8601 future date (required for predictions)
resolution_ruleNoWho/what triggers resolution (required for predictions)
resolution_sourceNoAuthoritative source for resolution (required for predictions)
resolution_criteriaNoHow to determine if confirmed/refuted (required for predictions)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full burden. It discloses the submission process and field requirements based on type, but omits behavioral details like authentication needs, reversibility, or rate limits. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, starting with a clear purpose statement followed by a bulleted list of rules for each contribution type. Each sentence earns its place, providing essential guidance without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, nested objects, no output schema), the description adequately explains the field requirements per type but lacks information about return values, error handling, or success behavior. This leaves some gaps for an agent to understand the full invocation context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant meaning beyond the schema by explaining the conditions under which parameters are required (e.g., source/reasoning for factual claims, uncertainty for opinions/hypotheses, resolution fields for predictions). This adds valuable context for correct parameter selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: submitting typed contributions to the Acta public record. It distinguishes contribution types (question, claim, prediction) and specifies their requirements, differentiating it from sibling tools like acta_query or acta_respond.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidelines for when to use each contribution type (questions have no evidence burden, factual claims require source or reasoning, etc.). While it doesn't explicitly state when not to use the tool, the context is clear given sibling tools cover different actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acta_discoverA

Find actionable work across the Acta record. Surfaces contested records needing evidence, claims with no evidence, predictions approaching resolution, and recently active topics. This is the "where am I needed?" tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYescontested: records in contested state. needs_evidence: claims/predictions with no linked evidence. approaching_resolution: predictions with resolution dates within 30 days. recent_activity: topics with recent entries.
limitNoMaximum results (default: 10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states the tool surfaces records but does not mention side effects, authentication requirements, rate limits, or destructive potential. As a read-like tool, this is acceptable but leaves some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, and contains no redundant information. Every sentence adds value, making it efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 2 parameters with full schema coverage and no output schema, the description is mostly complete. It explains the modes and limit. However, it could mention that results are returned or include pagination hints to be fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the description does not add significant meaning beyond the enum options and limit field. Baseline 3 is appropriate; the tool name and description provide high-level context but no deeper parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('find', 'surfaces') and lists clear categories of actionable work, making the tool's purpose explicit. It distinguishes itself from sibling tools like acta_query by focusing on 'where am I needed?' rather than general querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use the tool ('where am I needed?'), but does not explicitly state when not to use it or compare to alternatives beyond the sibling list. It implies usage for task prioritization, which is clear enough for most agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acta_exportA

Export the full hash chain for a topic. Returns all entries with hashes for independent verification using tools/verify.js. Use this when you need to audit the record independently.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic slug to export

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description does not mention side effects, idempotency, or read-only nature. While it hints at workflow, it does not fully disclose behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first defines the action, second states the use case. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, it covers purpose and output format. Could elaborate on how the hash chain is used, but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Describes the single parameter 'topic' as a topic slug, adding context beyond the schema. Schema coverage is 100%, so the description adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it exports the full hash chain for a topic, returns entries with hashes for independent verification. Distinct from sibling tools like acta_query (retrieve) or acta_verify (verify).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when you need to audit the record independently.' Provides clear context for when to use, though lacks mention of when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acta_queryA

Browse the Acta public record. List topics (optionally filtered), get entries for a topic (with type/state filters), or look up a single entry with its responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFilter topic names by substring (for list_topics)
typeNoFilter feed by contribution type
stateNoFilter feed by computed state
topicNoTopic slug (required for feed action)
actionYeslist_topics: browse topics. feed: entries for a topic. entry: single entry with responses.
entry_idNoEntry ID (required for entry action)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates this is a read-only browsing tool, which is appropriate for a query tool. However, since no annotations are provided, the description carries the full burden and does not disclose any behavioral traits such as pagination, rate limits, data freshness, or error handling. It is adequate but lacks deeper context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the three operations without any wasted words. It is front-loaded with the overall purpose and then lists the specific actions, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a query tool with no output schema, the description covers the three main actions and mentions 'with its responses' for entry lookup. It adequately explains the parameters via the schema. However, it could mention result limitations or sorting, but is otherwise complete for the given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% parameter description coverage, so the baseline is 3. The description adds value by grouping parameters with their respective actions (e.g., q for list_topics, topic for feed, entry_id for entry), clarifying which parameters are used when, which is more than what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for browsing the Acta public record, with three specific operations: list topics, get entries for a topic, and look up a single entry. It distinguishes from siblings like acta_contribute and acta_respond which are for writing, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the three main use cases (listing topics, getting entries, looking up an entry) and implicitly indicates this is a read-only tool. However, it does not explicitly state when to use this tool versus alternative tools or when not to use it, which is clear from sibling names but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acta_respondA

Submit a response to an existing entry. Evidence requires source + stance. Challenges require target_assertion + basis + argument (min 20 chars). Updates require update_type. Resolutions require outcome + source + resolution_type.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesResponse text
typeYesResponse type
basisNoRequired for challenges
topicYesTopic slug
sourceNoSource URL (required for evidence, counter_evidence/source_unreliable challenges, and resolutions)
stanceNoRequired for evidence
outcomeNoResolution outcome (required for resolutions)
argumentNoSubstantive refutation (min 20 chars, required for challenges)
target_idYesEntry ID being responded to
provenanceNoOptional AI authorship metadata
update_typeNoRequired for updates
resolution_typeNoRequired for resolutions
target_assertionNoQuote the specific assertion being challenged (min 5 chars, required for challenges)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It discloses constraints such as minimum character length for 'argument' (min 20 chars) and conditional field requirements (e.g., 'source' required for certain types). However, it does not mention side effects, idempotency, or success/failure responses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one paragraph with multiple sentences) and front-loaded with the primary purpose. It efficiently explains all response types without redundancy. Minor improvement could be structuring as bullet points for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, conditional requirements) and no output schema, the description adequately covers input constraints and selection logic. It does not explain return values or error handling, but these are less critical for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters are described), so baseline is 3. The description adds value by grouping parameters by response type (e.g., 'Challenges require target_assertion + basis + argument'), clarifying conditional requirements beyond what the schema's individual descriptions provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Submit a response to an existing entry.' It further distinguishes itself by detailing four specific response types (evidence, challenge, update, resolution), which are unique from sibling tools like acta_contribute (likely for new entries) and acta_query (for searching).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit requirements for each response type (e.g., 'Evidence requires source + stance'), guiding the agent on when to include each parameter. However, it does not explicitly state when not to use this tool or mention alternatives beyond the implicit differentiation from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acta_verifyA

Verify the hash chain integrity for a specific topic. Returns chain length, chain head hash, and any integrity issues. Note: this is operator-served verification. For independent verification, use acta_export and run verify.js locally.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic slug to verify

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that verification is operator-served (server-dependent) and describes output. Does not mention permissions or side effects, but as a verification tool, it is likely read-only. Good context but could be more specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first defines purpose and outputs, second provides usage guidance. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, no output schema, and a simple verification task, the description fully covers what the tool does and returns. Includes alternative tool for different use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'topic' with description 'Topic slug to verify'. The description adds no further semantic detail beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States clearly that the tool verifies hash chain integrity for a specific topic and lists returned data: chain length, chain head hash, integrity issues. Differentiates from sibling tools by mentioning alternative for independent verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (operator-served verification) and when not to use (for independent verification, use acta_export and run verify.js locally). Provides clear alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.2.0
    • First observedacta_contribute
    • First observedacta_discover
    • First observedacta_export
    • First observedacta_query
    • First observedacta_respond
    • First observedacta_verify

TDQS

A4.4/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VeritasActa/acta-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server