certified-mcp
certified-mcp
에이전트에게 말로 넘어갈 수 없는 무언가를 주세요.
인증서 검증, 동치 증명, 사전 등록 봉인을 도구로 노출하는 MCP 서버입니다. 설계, 증명, 또는 벤치마크 구성을 수정하는 에이전트는 자신의 작업을 스스로 검증할 방법이 없습니다 — 그래서 성공했다고 보고합니다. 이 도구들은 아티팩트에 대해 주장하는 것이 아니라 아티팩트로부터 재도출된 판정을 반환합니다.
설치
pip install "certified-mcp @ git+https://github.com/nickharris808/certified-mcp.git@main"아직 PyPI에 없습니다. certified-mcp라는 이름은 등록되지 않았으므로, pip install certified-mcp는 현재 아무것도 설치하지 않습니다 — 위의 줄을 사용하세요. 정확히 동일한 코드를 설치합니다. 패키지가 게시되면 이 안내는 사라지고 일반 이름이 작동합니다.
네 개의 의존성은 git 참조로 선언되어 있으므로, 그 한 줄이 의존성도 함께 가져옵니다.
Related MCP server: agent-gate
30초 퀵스타트
MCP 클라이언트 구성(Claude Desktop, Cursor 또는 모든 MCP 호스트)에 추가하세요:
{
"mcpServers": {
"certified": { "command": "certified-mcp" }
}
}그런 다음 에이전트에게 달리 추측해야 할 질문을 해보세요:
"이 가산기를 리팩터링했어. 원본과 여전히 동치인지 증명해줘."
prove_equivalence(inputs=["a","b"], circuit_a=[...], circuit_b=[...])
-> {"verdict": "EQUIVALENT", "receipt_verifies": true}또는 동치가 아닐 때:
-> {"verdict": "COUNTEREXAMPLE", "counterexample": {"1": true, "2": false}}에이전트는 "이상 보이는 것이 맞다"가 아니라 구체적인 실패 입력을 받습니다.
도구
도구 | 기능 |
| 인증서 자체의 숫자로부터 제조 승인 판정을 재도출하고, 무결성을 검사하며, 아무것도 인증하지 않는 번들을 거부합니다 |
| REFUTED/REJECT 판정을 구체적인 목록으로 변환합니다: 어떤 위치가 안전한지, 안전하지 않은지 또는 경계에 걸쳐 있는지, 각각이 가진 여유, 필요한 여유, 그리고 얼마나 부족했는지. 새로운 것을 계산하지 않습니다 — 판정이 이미 기반한 산술을 다시 제시할 뿐입니다 |
| 커밋된 공식에 대해 DRAT 증명을 다시 실행하거나(또는 반례를 다시 시뮬레이션합니다) |
| 두 개의 작은 조합 회로가 동치임을 증명하거나, 다른 입력을 반환합니다 |
| 어떤 솔버의 DRAT 반박을 검사하고, 따라오지 않는 첫 번째 보조정리를 지목합니다 |
| 측정 전에 수용 기준을 공개하지 않고 봉인합니다 |
| 봉인 후 변경된 기준을 감지합니다 |
| 실패 아틀라스에 대해 검증기를 채점합니다 |
| 결함 클래스를 설명합니다: 위조가 왜 유효해 보이는지, 무엇이 그것을 잡아내는지 |
에이전트가 특히 이점을 얻는 이유
이 프로젝트가 직접 다루는 세 가지 실패 모드:
자신만만한 오류. 로직을 리팩터링하는 에이전트는 동작을 보존했다고 말할 것입니다.
prove_equivalence는 그렇지 않을 때 반례 입력을 반환합니다.골대 옮기기. 벤치마크에 맞춰 튜닝하는 에이전트는 조용히 임계값을 완화할 것입니다. 실행 전에
seal_criteria를 사용하면 그것이 감지 가능해집니다 — 에이전트 자신에 의해서도요.건네받은 증명을 신뢰하기.
check_drat는 모든 솔버의 증명을 받아들이고 모든 보조정리를 다시 검사하므로, 조작된 증명은 인용되지 않고 잡힙니다.
여기의 모든 것은 로컬 및 읽기 전용입니다
네트워크 없음. 업로드 없음. 텔레메트리 없음. 모든 도구는 사용자가 지정한 파일을 읽거나 전달한 인수에 대해 계산할 뿐입니다.
이 도구들 중 어느 것도 제조 인증서를 생성할 수 없습니다 — 검사만 할 수 있습니다. 이러한 비대칭성은 의도적이며 테스트로 강제됩니다. 검사는 저렴하므로 어디에나 있어야 합니다. 검사할 가치가 있는 인증서를 생성하려면 별도의 폐쇄형 제품인 인증 엔진이 필요합니다.
구현
표준 라이브러리만 사용, MCP stdio 프로토콜, 약 300줄. 실행을 결정하기 전에 전체 서버를 읽을 수 있습니다 — 파일 시스템 접근 권한이 있는 에이전트에 연결하는 것이라면, 그렇게 해야 합니다.
라이선스
Apache-2.0.
정직한 범위 — 이 도구들이 증명하는 것과 증명하지 않는 것
질문 | 답변 |
에이전트가 이 도구들로 인증서, 증명 또는 봉인을 검사할 수 있나요? | 예, 모두 로컬 및 읽기 전용으로 가능합니다. |
| 아니요. 신뢰 앵커가 없어 도구가 기권했음을 의미합니다. 에이전트는 이를 통과나 실패로 보고해서는 안 됩니다. |
여기의 어떤 도구가 인증서를 생성할 수 있나요? | 아니요 — 테스트로 강제됩니다. 이것들은 검사기입니다. |
여기의 어떤 것이 물리학을 검증하나요? | 절대 아닙니다. |
나머지 툴킷
기록된 판정은 신뢰할 입력이 아니라 검사해야 할 주장입니다. 아홉 개의 저장소가 이를 기반으로 구축되었습니다.
전체 이야기와 반박된 반론은 certified-oss 에 있습니다 — 이 프로젝트를 처음 여는 것이라면 거기서 시작하세요.
제조 인증서의 판정을 재도출합니다. 표준 라이브러리만 사용. | |
누구나 다시 검사할 수 있는 영수증과 함께 두 회로의 동치를 증명합니다. | |
측정 전에 수용 기준을 봉인합니다. | |
28개의 라벨링된 위조와 어떤 퇴화 검증기도 이길 수 없는 지표. | |
위 기능들을 AI 에이전트가 호출할 수 있는 도구로 제공합니다. | |
브라우저에서 실행되는 검증기. 업로드 없음. |
지금 바로 설치 없이 사용해보세요: 🔏 검증기 Space · 위조를 둘러보세요: 📊 아틀라스 데이터셋
무료 버전이 끝나는 지점
여기의 모든 것은 검사합니다. 그 어떤 것도 물리적으로 의미 있는 인증서를 생성하지 않습니다 — 그것은 실제 공정 모델에 대한 건전한 엔클로저가 필요하며, 이는 별도의 상용 제품입니다. 인증서를 검사하는 방법이 아니라 인증서 자체가 필요하다면, 그에 대한 논의가 필요합니다.
문서
PERFORMANCE.md — 측정된 성능, 최적화되지 않은 것 포함
CONTRIBUTING.md — 기여 안내
포트폴리오 전체: 튜토리얼 · 개념 · FAQ · 아키텍처 · API 참조
라이선스, 인용, 기여
Apache-2.0 — LICENSE 참조. 이 프로젝트를 사용한다면 인용해 주세요: CITATION.cff.
가장 가치 있는 기여는 이 프로젝트가 잡아내지 못하는 위조입니다 — CONTRIBUTING.md와 포트폴리오 전체 가이드를 참조하세요.
기록된 판정은 신뢰할 입력이 아니라 검사해야 할 주장입니다.
certified-mcp는 이를 기반으로 구축된 아홉 개의 저장소 중 하나입니다. 전체 이야기와 반박된 반론은
certified-oss 에 있습니다 — 이 프로젝트를 처음
여는 것이라면 거기서 시작하세요.
Available Tools
9 toolscheck_dratA
Check a DRAT refutation against a CNF in DIMACS form. Accepts proofs from any solver. Returns whether every lemma is RUP and, on failure, the index and content of the first lemma that does not follow.
| Name | Required | Description | Default |
|---|---|---|---|
| cnf_path | Yes | ||
| drat_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses what the tool returns, including failure details. It implies a read-only check ('returns') and mentions flexibility in accepting proofs from any solver. It does not explicitly state side effects or limitations, but for a check operation this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core behavior (check, input formats, output on success/failure) concisely. It lacks details on error handling or return format, but given the tool's simplicity and no output schema, it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameters. It implies two file paths (CNF and DRAT) through the description but does not explicitly name the parameters. The meaning of 'RUP' and 'lemma' may be unclear to non-experts. Sufficient but not fully explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: checking a DRAT refutation against a CNF in DIMACS form. It distinguishes itself from sibling tools (e.g., explain_certificate, verify_certificate) by focusing on RUP lemma verification with specific failure details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context on when to use (for any DRAT proof from any solver) and what it verifies (RUP lemmas). It does not explicitly mention alternatives or when not to use it, but the scope is evident from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_sealA
Check that an acceptance specification still matches its seal. Detects criteria that were changed after sealing. Returns matched=false with the two digests if they diverge.
| Name | Required | Description | Default |
|---|---|---|---|
| seal | No | ||
| spec | Yes | ||
| seal_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It partially succeeds by stating the return behavior: 'Returns matched=false with the two digests if they diverge.' This gives insight into the tool's output and failure mode. It does not state whether the tool has side effects, but 'check' strongly implies a read-only operation, and the core verification behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with three short sentences that each add value: what the tool does, what it detects, and what it returns. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and three parameters with nested objects, the description is minimally viable: it clearly states the purpose and the divergent return case. However, it omits parameter semantics, the matched=true return case, and does not provide enough context for an agent to confidently decide between passing a seal object vs a seal_path. It is acceptable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's lack of explanations. It mentions 'acceptance specification' and 'seal' generally, but does not clarify the roles of the three parameters (seal, spec, seal_path), which are required vs optional, or how seal_path relates to the seal object. The parameter semantics are severely under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource construction ('Check that an acceptance specification still matches its seal') and clearly distinguishes itself from siblings like seal_criteria and verify_certificate by focusing on detecting post-sealing changes. It also names the concrete detection scope ('criteria that were changed after sealing'), so there is no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied through 'Detects criteria that were changed after sealing,' suggesting this is for verifying that a spec has not been modified since it was sealed. However, there is no explicit 'use this when...' statement, no mention of when not to use it, and no alternatives are named among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_certificateA
Explain WHY a certificate reached its verdict, locus by locus: which loci are safe, unsafe or straddling, the margin each had, the margin it needed, and how far short it fell. Use this after verify_certificate returns REFUTED or a certificate records a REJECT — it turns an opaque refusal into a specific, actionable list. Computes nothing new; it re-presents the arithmetic the verdict already rests on.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | how many binding loci to list | |
| bundle_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it states 'Computes nothing new; it re-presents the arithmetic the verdict already rests on,' disclosing the read-only, non-mutating nature. It could add more about output formatting or errors, but the key behavioral trait is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core verb ('Explain WHY a certificate reached its verdict'). Every sentence adds value: purpose, usage trigger, and a transparency note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only two parameters and no output schema, the description is largely complete: it covers purpose, usage timing, and behavioral transparency. The only gap is the unmentioned `bundle_dir` parameter meaning, which is inferable from context but not explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes `limit` but not `bundle_dir`. The description indirectly implies bundle_dir is the certificate directory but doesn't explicitly define it. This partial compensation for the 50% schema coverage is adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool explains why a certificate reached its verdict, listing specific outputs (safe/unsafe/straddling loci, margins, shortfalls). It also distinguishes from siblings by referencing verify_certificate and REJECT/REFUTED verdicts, making it unique among tools like explain_defect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this after verify_certificate returns REFUTED or a certificate records a REJECT.' It also explains the benefit ('turns an opaque refusal into a specific, actionable list'), leaving no ambiguity about its appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_defectA
Explain a certificate defect class from the atlas taxonomy: why the forgery looks valid, and which check catches it. Call with no key to list every defect.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clarifies this is an explanation (non-mutating), details the type of information returned, and documents the effect of omitting the key. It does not describe error handling or return structure, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: the first states the core purpose and output, the second provides a distinct call mode. No wasted words, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, this description is sufficient. It states the purpose, the nature of its output, and a special usage mode. It could be enhanced by describing the response format, but the current description covers the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must illuminate the 'key' parameter. It indicates that providing a key selects a specific defect class and that omitting it lists all defects, which gives meaningful usage context. However, it does not specify the expected format or domain of the key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('explain') with a defined resource ('certificate defect class from the atlas taxonomy') and explicitly describes what the explanation covers ('why the forgery looks valid, and which check catches it'). This clearly distinguishes it from sibling tools like explain_certificate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for defect classes in the atlas taxonomy, and it documents the special behavior of calling with no key to list all defects. It does not explicitly mention alternatives or when not to use, but the purpose statement gives enough context to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prove_equivalenceA
Prove two small combinational circuits equivalent, or return a counterexample input. Circuits are given as gate lists over named signals. Returns a receipt any third party can re-check. Small instances only — this is a demonstration prover, not a production one.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | Primary input names, e.g. ["a","b"]. | |
| out_path | No | Optional path to write the receipt. | |
| circuit_a | Yes | Gates: {op: AND|OR|NOT|XOR, out: name, args: [names]}. | |
| circuit_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the counterexample behavior, receipt output, and size limitations, which are meaningful behavioral traits beyond just 'prove'. It does not mention side effects, but none are apparent for a demonstration prover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with distinct value: action, input/output format, and limitations. No wasted words, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with no output schema, the description covers key behavioral aspects: equivalence proof, counterexample, receipt, and scope limitation. It does not specify receipt contents, but sibling tools like verify_receipt handle that aspect, so this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 75% of parameters with descriptions. The description adds context about circuits being gate lists over named signals, which applies to both circuit_a and circuit_b, but does not elaborate on out_path or parameter-specific details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('prove') and resource ('two small combinational circuits') and clearly distinguishes from sibling certificate-verification tools by stating the core equivalence-checking behavior. It also mentions the counterexample output, which further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states size limitation ('Small instances only') and that it is a demonstration prover, not for production. This gives clear guidance on when to use it, though it does not explicitly name alternative tools for larger instances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_verifierA
Score a verifier command against the certificate failure atlas. Returns detection (forgeries rejected), precision (valid artifacts accepted), and atlas_score = the minimum of the two, plus exactly which forgeries got through.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | argv with {path} as the artifact placeholder. | |
| atlas_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It does specify the output (detection, precision, atlas_score, and forgeries that got through), which is useful. But it does not disclose side effects, execution behavior, permissions, or prerequisites, leaving the transparency incomplete for a tool that likely executes a command.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences. The first states the action and target, the second lists the return values. No fluff or redundancy; it is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters and no output schema, the description is nearly complete: it conveys the purpose, the input (implicitly via 'verifier command' and 'atlas'), and the exact output metrics. It only lacks explicit parameter enumeration and usage scenarios, which are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 50% of parameters: 'command' is described as argv with {path} placeholder, while 'atlas_dir' has no description. The tool description contextually links atlas_dir to the certificate failure atlas but does not explicitly explain its format or role. It adds some context but does not fully compensate for the uncovered parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Score' against a concrete resource (the certificate failure atlas), and explicitly lists the calculated metrics (detection, precision, atlas_score). This clearly distinguishes the tool from sibling verification/explanation tools by indicating an evaluation/benchmarking purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Score a verifier command against the certificate failure atlas', which suggests using this when evaluating a verifier. However, there is no explicit statement of when to use this tool versus siblings like verify_certificate or check_drat, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seal_criteriaA
Seal an acceptance specification BEFORE measuring, so it cannot be adjusted afterward. Returns a digest that commits to the criteria without revealing them. Call this before running an experiment, not after.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| spec | Yes | ||
| out_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it returns a digest that commits to criteria without revealing them, and it enforces immutability ('cannot be adjusted afterward'). While it does not cover failure modes or required permissions, it provides substantial behavioral context for a sealing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and front-loaded. The first sentence states the core action and purpose, the second sentence explains the return value and timing. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core concept and timing well, but is incomplete in crucial areas. It does not explain the return digest format or the parameters, especially the nested spec object and optional note/out_path. For a tool with no annotations, output schema, or parameter descriptions, this leaves the agent with insufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides zero information about the parameters. The schema lists three parameters (spec, note, out_path) with no descriptions, and the description mentions none of them. With 0% schema description coverage, the description fails to compensate, leaving the agent without guidance on what to pass for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Seal an acceptance specification') and its specific purpose (to prevent adjustment after measuring). It also distinguishes itself from sibling tools by emphasizing the pre-measurement timing and the commitment aspect, which is unique among the listed siblings focused on verification and explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit timing guidance: 'Call this before running an experiment, not after.' This clearly indicates when to use the tool and when not to. However, it does not explicitly mention alternative tools or provide comparative use cases, which would elevate it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_certificateA
Verify a manufacturing certificate bundle. Re-derives the admission verdict from the certificate's own numbers rather than reading it, and checks integrity. Returns a verdict: VERIFIED, REFUTED, VACUOUS, or UNVERIFIED. IMPORTANT: without an expected_sha256 (a fingerprint obtained OUT OF BAND, not from the bundle itself) the verdict is UNVERIFIED — the tool abstains, because internal consistency alone cannot rule out a forgery whose inputs and verdict were edited together. UNVERIFIED means 'cannot tell', NOT 'the certificate is bad'. Do not report it as either pass or fail.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_dir | Yes | Path to the bundle directory. | |
| allow_empty | No | ||
| expected_sha256 | No | The out-of-band fingerprint — the trust anchor. Without it the tool abstains. | |
| accept_without_anchor | No | Accept the weaker internal-consistency check on purpose. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses the re-derivation approach, integrity checking, the four possible verdicts, the abstention logic when expected_sha256 is missing, and the crucial semantic distinction that UNVERIFIED means 'cannot tell' rather than 'bad'. This goes well beyond a minimal behavioral summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences long, each earning its place. It front-loads the purpose, then efficiently covers the method, return values, and the critical caveat about UNVERIFIED. There is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description lists all verdict values, explains the abstention case, and clarifies how to interpret UNVERIFIED. It is quite complete, though a minor gap exists: the description does not reconcile the existence of accept_without_anchor with the absolute statement that without expected_sha256 the verdict is UNVERIFIED.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% (three of four parameters have descriptions), and the description adds significant meaning to expected_sha256 by explaining that it is an out-of-band trust anchor and why it is necessary to prevent forgeries. However, allow_empty has no schema description and is not mentioned in the description, and the interaction between accept_without_anchor and the stated 'without expected_sha256 the verdict is UNVERIFIED' rule is left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Verify a manufacturing certificate bundle,' which is a specific verb and resource. It goes further to explain the verification method—'re-derives the admission verdict from the certificate's own numbers rather than reading it, and checks integrity'—which clearly distinguishes this from simply reading the stored verdict and from sibling tools like verify_receipt or explain_certificate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it stresses that without an out-of-band expected_sha256 the tool abstains with UNVERIFIED, and it explicitly warns not to report UNVERIFIED as pass or fail. This is strong guidance for when the tool's output is trustworthy, though it does not name alternative tools for specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_receiptA
Verify a logic-equivalence receipt. Re-runs the DRAT proof check (or re-simulates the counterexample) over the committed formula, and recomputes the hash chain. The verdict is re-derived, never read from the receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the DRAT check is re-run, the counterexample is re-simulated, and the hash chain is recomputed, emphasizing that the verdict is re-derived rather than read from the receipt. This builds trust without needing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the purpose, then add process details, and finally emphasize the trust model. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and no output schema, but the description does not state what the tool returns (e.g., a verdict) or how the result is presented. It also lacks guidance on how this differs from sibling tools, leaving some gaps given the complex domain of proof verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only parameter, receipt_path, is not explained in the description. The description refers to 'the receipt' but never clarifies what the path should point to or any constraints, leaving the parameter semantics to the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Verify a logic-equivalence receipt,' which is a specific verb and resource. It clearly distinguishes from siblings like verify_certificate by focusing on receipts, and adds details about re-running DRAT proof checks and recomputing hash chains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you have a receipt to verify) but does not explicitly contrast it with alternatives like check_drat or verify_certificate. No when-not-to-use guidance is provided.
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.
9 tool updates
v1.0.0- First observed
check_drat - First observed
check_seal - First observed
explain_certificate - First observed
explain_defect - First observed
prove_equivalence - First observed
score_verifier - First observed
seal_criteria - First observed
verify_certificate - First observed
verify_receipt
TDQS
Scored across 9 tools
Most tools have distinct purposes, but the verify_* family (verify_certificate, verify_receipt) and check_drat all involve checking proofs, which could cause confusion. However, the descriptions clearly differentiate artifact types and workflows.
Tool names consistently follow a verb_noun pattern (e.g., verify_certificate, check_drat, explain_defect). No mixed conventions or vague verbs; every name conveys its action and target.
With 9 tools, the server is well-scoped for a certification/verification domain. Each tool serves a clear role, and the count is within the ideal 3-15 range.
The toolset covers the core verification lifecycle: proving, checking, verifying, explaining, and sealing. Minor gaps exist (e.g., no tool to create certificates or manage the atlas), but these are likely external to this server's purpose.
Maintenance
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
Tamper-evident proof creation and verification for AI agents via MCP, A2A, and REST.
Trust checks for MCP servers: trust scores, tool-drift detection, signed diligence receipts. Free.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides fact-checking capabilities and truth anchoring for AI agents using verified data sources.MIT
- AlicenseBqualityBmaintenanceAn MCP server that enforces fail-closed deterministic checks, independent refute-first review, and tamper-evident hash-chained receipts for AI agent outputs before claiming completion.43MIT
- AlicenseAqualityAmaintenanceMCP server for checking supply-chain trust before connecting to AI agents, frameworks, or MCP servers.8731MIT
- AlicenseAqualityDmaintenanceMCP server that enables AI agents to verify each other's trust scores, register, submit reviews, and find trusted agents before transacting.424MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/nickharris808/certified-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server