Atlas / MCP servers / vassiliylakhonin / agenda-intelligence-md

agenda-intelligence-mdBLOCK

mcp/vassiliylakhonin/agenda-intelligence-md

Deterministic evidence-packet checks for AI-generated claims: references, quotes, numbers, and support gaps. CLI, Python, MCP, and review adapters.

Verdict
BLOCK
Grade
F
Trust score
58 /100
Exposed tools
17 17r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
8
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A deterministic evidence-packet linter for claim-backed AI output. Supply claims, source references, quotations, and source text; receive broken-reference, quote, number, lexical-support, and evidence-gap findings before human review.

Use it to make an AI answer's evidence trail inspectable in a local workflow, agent pipeline, or CI job. Packet completeness is not factual truth, source authenticity, or permission to act.

First run

Python 3.9 or later, from a checkout:

python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/agenda-intelligence check examples/evidence-packet/request.json
.venv/bin/agenda-intelligence check examples/evidence-packet/request.json --format json

For the versioned package, use python -m pip install "agenda-intelligence-md==1.16.0" instead of the editable install. The example commands above use files from this checkout.

The bundled synthetic packet reports packet_status=packet_complete and factuality=not_assessed. A stale or inaccurate source can still pass. Add --strict when packet findings should fail a CI step.

For document-based review, start with the local-file review guide and example manifest:

.venv/bin/agenda-intelligence review examples/evidence-review/manifest.json --format html

For a RAG answer with inline citations and retrieved chunk texts, use the Output Verification adapter. It assembles the packet locally and returns line-level findings and repair guidance:

.venv/bin/agenda-intelligence review-answer examples/output-verification/rag-answer.json
.venv/bin/agenda-intelligence review-answer examples/output-verification/rag-answer-revised.json --strict

The original fictional answer routes to revision; the corrected answer routes to human review. Both run witho

Read from source at commit 3d1213a85c98OBSERVED · 2026-10-10
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (pypi)
claude mcp add agenda-intelligence-md -- uvx agenda-intelligence-md==1.16.0
03

Exposed tools (17)

17 read · 0 write · 0 destructive.

ToolRiskDescription
CHECK_TRANSACTION_SAFETYreadChecks supplied transaction evidence and known risk patterns; does not authorize signing.
agenda-guardreadEvidence checks for proposed transactions and escrow deliveries; human review is required.
audit_evidence_claimsreadAudit claims against cited evidence sources
claims_textreadExtracted claims to audit
diagnostics_jsonreadAudit or verification failure details
discoveryreadMachine-readable discovery documents.
draft_evidence_memoreadDraft a structured evidence-backed analysis memo for review
evidence_summaryreadSummary of available evidence
gatesreadCanonical HTTP endpoints for the triage gates.
jsonrpcreadA2A-compatible JSON-RPC endpoint.
knowledgereadOKF and entity-map artifacts for retrieval agents.
monetizationreadAutonomous Base USDC settlement and Bearer key provisioning.
packet_jsonreadCurrent evidence packet JSON
self_correct_packetreadGenerate instructions to repair an evidence packet with gaps
sources_textreadSource text to verify against
statusreadHealth and status endpoints.
topicreadSubject matter of the memo
04

Trust audit

BLOCKgrade F · trust 58/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (7 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
plugins/output-verification/skills/evidence-output-review/SKILL.md:10
If the evidence packet is incomplete, ask for the missing source material. Do not send secrets or unrelated private data to the hosted endpoint. Do not invoke Decision Gate tools or treat receipts as
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
deploy/cloudflare-worker/scripts/rotate-stats-token.js:170
console.log(`ok    ${label.padEnd(36)} secret written`);
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
src/agenda_intelligence/agent_financial_guard.py:31
re.compile(r"exfiltrate\s+(keys|balance|private\s+key)", re.IGNORECASE),
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
deploy/cloudflare-worker/scripts/verify-decision-gate.js:275
console.log(`\nвсего ${rows.length} проверок, провалов ${failed.length}\n`);
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
src/agenda_intelligence/grounding.py:841
if paragraph and re.match(r"[A-ZА-ЯЁ0-9]", line):
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
deploy/cloudflare-worker/test/worker.test.js:5895
const token = "portal-issued-token-123456";
LOWInventory / provenance · inv.hidden_file · CWE-1104
.claudeignore
.claudeignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
deploy/cloudflare-worker/test/fleet-client-recovery.test.js:40
const run=new Function('document','window','crypto','fetch','agendaTelemetryHeaders',show+'; return showWorkedExample;');
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
deploy/cloudflare-worker/test/paid-execution.test.js:162
const paidFetch = new Function('window', 'fetch', PAYMENT_CLIENT_SCRIPT + '; return agendaPaidFetch;')(wallet, fetch);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
deploy/cloudflare-worker/test/payment-diagnostics.test.js:29
const headers = new Function('window', PAYMENT_CLIENT_SCRIPT + '; return agendaTelemetryHeaders;')(window);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
deploy/cloudflare-worker/test/payment-journey.test.js:102
const paidFetch = new Function('window', 'fetch', PAYMENT_CLIENT_SCRIPT + '; return agendaPaidFetch;')(wallet, fetch);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
deploy/cloudflare-worker/test/worker.test.js:8487
const pay = new Function("window", "document", "fetch", `${source}; return payWithBaseWallet;`)(window, { getElementById: () => statusDiv }, fetch);
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
deploy/cloudflare-worker/scripts/check-paid-client-path.js:6
import { createHostedMcpCall } from '../../../examples/hosted-mcp/client.mjs';
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
deploy/cloudflare-worker/scripts/generate-mcp-tool-contracts.js:6
const repositoryRoot = resolve(scriptDirectory, "../../..");
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
deploy/cloudflare-worker/scripts/generate-public-schemas.js:2
const dir = new URL("../../../schemas/v1/", import.meta.url);
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
deploy/cloudflare-worker/scripts/generate-worked-examples.js:12
? JSON.parse(fs.readFileSync(new URL('../../../examples/output-verification/request.json',import.meta.url),'utf8'))
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
deploy/cloudflare-worker/src/okf_content.js:26
"/profiles/confidential-project-room/index.md": "---\ntype: evidence_readiness.profile_contract\ntitle: Confidential Project-Room Evidence-Readiness Profile\nstatus: build-to-learn\nversion: \"0.1\"\n
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/deployment/http-api.md:82
curl -sS http://127.0.0.1:8080/v1/audit-claims \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/deployment/http-api.md:90
curl -sS http://127.0.0.1:8080/v1/source-coverage \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/deployment/http-api.md:98
curl -sS http://127.0.0.1:8080/v1/score \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/deployment/http-api.md:106
curl -sS http://127.0.0.1:8080/v1/middle-corridor/deal-risk \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/deployment/http-api.md:114
curl -sS http://127.0.0.1:8080/v1/agentic-interaction/trust \
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
lib/forge-std/test/StdCheats.t.sol:255
hex"23e9918700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001337000000000000000000000000000000000000000000000000000000000000
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
lib/forge-std/test/StdCheats.t.sol:285
hex"0000000000080000000000000000001000000000000000000000000000018000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
deploy/cloudflare-worker/src/decision-receipt.js:33
const binary = atob(value.replace(/-/gu, "+").replace(/_/gu, "/") + padding);

Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.

Audited 2026-10-10 · audit v0.4.1 · source sha 3d1213a85c98full audit observations/trust-audit/mcp-server/vassiliylakhonin__agenda-intelligence-md.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-103d1213a85c98BLOCKF58first audit
06

Questions

What is the agenda-intelligence-md MCP server?

Deterministic evidence-packet checks for AI-generated claims: references, quotes, numbers, and support gaps. CLI, Python, MCP, and review adapters.

What tools does agenda-intelligence-md expose?

17 in total: 17 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is agenda-intelligence-md safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (58/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does agenda-intelligence-md need?

It reads AGENDA_INTELLIGENCE_KEY, AGENDA_INTELLIGENCE_MAX_TOKENS, AGENDA_OBSERVABILITY_TOKEN, AGENDA_STATS_TOKEN, ANTHROPIC_API_KEY, OPENSANCTIONS_API_KEY, STATS_TOKEN, VIZIER_API_KEY, VIZIER_DELEGATION_SIGNING_KEY and VIZIER_REVIEW_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does agenda-intelligence-md run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @agenda-intelligence/guard-mobile at 1.2.4.

How current is this page?

The grade is for one exact copy of the source (3d1213a85c98), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement