Skip to main content
Glama
fc0web

rei-meta-mcp

by fc0web

rei-meta-mcp

커넥터 군 위에 서는 메타 계층. 개별 MCP 커넥터를 대상, 대상에 대한 접근 경로를 사상으로 간주하고, 그 구조를 다룬다.

Phase 1의 유일한 실용 목적은 정합성 검사(coherence check) — 같은 대상을 가리키는 여러 소스 간에 내용이 일치하는지를 기계적으로 대조하는 것이다.

왜 만들었는가

2026-08-19, rei-memory-mcp의 구현 과정에서 SEED_KERNEL이 1,677 vs 1,675로 11일간 어긋난 채 발견되지 않았던 것이 판명되었다. 발견할 수 있었던 것은 인간이 두 숫자를 우연히 서로 비교했기 때문이며, 기계에는 검출 수단이 없었다.

이 커넥터의 첫 번째 일은, 이것을 기계가 먼저 찾아내는 것이다. 자세한 내용은 docs/incident-2026-08-19.md를 참조.

Related MCP server: Code-Oracle

제공하는 tool (3개)

meta_list_sources(object_name?: str)

등록된 source를 열거하고, 각각의 도달 상태·건수·git HEAD 해시(freshness의 단서)를 반환한다.

meta_check_coherence(object_name: str, detail: bool = False)

같은 대상을 가리키는 source의 지문을 대조하여, 다음 중 하나의 verdict를 반환한다:

verdict

의미

coherent

도달 가능한 전체 source의 지문 일치

divergent

도달 가능한 source 간 불일치

unreachable

도달 가능한 source가 0개

single_source

도달 가능한 source가 1개뿐 (비교 불가)

§4 중핵 규칙: 「도달하지 못함」은 「일치함」이 아니다. unreachable과 single_source는 항상 경고로 surface된다.

detail=True로 불일치 ID의 실제 목록(최대 100건)을 반환한다.

meta_compose(from_source: str, to_source: str)

Phase 1은 registry 내의 output_schema / input_schema 문자열 대조만 수행한다. 실제 스키마 추론은 Phase 3 이후.

Phase 1에서 하지 않는 일

  • 자동 수복 (의도적 제외. 어느 쪽이 올바른지의 판단은 인간이 수행)

  • 검사 이력의 영속화 (Phase 2)

  • 스키마 추론 (Phase 3)

  • 함자·수반·모나드 등의 범주론 구성 (필요해졌을 때)

현재 시점의 registered source

config/sources.example.yaml 참조:

source

kind

상태

rei-memory-local

sqlite

full fingerprint (~/rei-memory-mcp/data/seed_kernel.db)

rei-aios-local-mcp

mcp_stdio

partial fingerprint (node dist/mcp/start-mcp.js를 subprocess로 기동하여 get_kernel_status를 호출)

rei-aios-remote

unreachable_placeholder

claude.ai remote-devices 경유 deploy는 Python에서 직접 probe 불가 — 항상 unreachable을 명시

Install & 사용

uv pip install -e ".[dev]"
cp config/sources.example.yaml config/sources.yaml   # パスを埋める
uv run pytest                                        # 全 PASS を確認
uv run rei-meta-mcp                                  # stdio で MCP server 起動

registry의 경로는 환경 변수 REI_META_MCP_REGISTRY로 덮어쓰기 가능.

Honest scope

  1. 검출만, 수복은 하지 않음 — 판단을 인간의 밖으로 내보내지 않음

  2. partial fingerprint의 source (mcp_stdio) 간의 일치는 「불일치가 없음」의 확인이지 「완전 일치」의 증명은 아님 (content_hash 레벨에서 볼 수 없는 부분이 있음)

  3. 범주론 용어는 5개만 (대상·사상·등화자·합성·항등 사상) 하중을 짊어짐. 그 외는 피함

  4. 현 상태 3 source의 Phase 1 spike. 대상이 늘수록 가치가 커지는 구조

  5. Phase 2 (이력·정기 실행·통지)와 Phase 3 (스키마 추론·사상의 일반화)는, Phase 1이 실운용에서 기능한 후에 판단

License

AGPL-3.0-or-later.

관련

  • docs/incident-2026-08-19.md — 사고의 기록

  • tests/test_incident_2026_08_19.py — 사고를 재현하는 테스트

Available Tools

3 tools
meta_check_coherenceB

Check whether all sources for object_name agree.

Verdicts: coherent | divergent | unreachable | single_source. §4: unreachable/single_source are warnings, not silent success.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
object_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It goes beyond a simple 'check' by specifying the possible verdicts and the important warning semantics for `unreachable` and `single_source`, which is non-obvious. It does not discuss side effects, but as a read-only check that is reasonably implied.

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 short, front-loads the main purpose, and uses a compact verdict list plus a warning note. The only minor issue is the cryptic '§4' reference, which is terse but may require external context.

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?

The core purpose and output verdicts are covered, and the presence of an output schema reduces the need to describe return structure. However, key gaps remain: the `detail` parameter is unexplained, and there is no guidance on choosing this tool over its siblings.

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

Parameters2/5

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

The description clarifies that `object_name` is the object whose sources are checked, but it says nothing about the `detail` boolean parameter. Since schema description coverage is 0%, the description needed to compensate but only explains one of the two parameters.

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

Purpose4/5

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

The description states a specific action ('Check whether all sources agree') on a specific resource (`object_name`), and enumerates the possible verdicts. It does not explicitly differentiate from sibling tools, but the verb and resource make the purpose clear enough.

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

Usage Guidelines3/5

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

The usage is implied by 'Check whether all sources agree' — the agent can infer it is for consistency checking across sources. However, there is no explicit mention of when to prefer this tool over `meta_list_sources` or `meta_compose`, nor any exclusions.

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

meta_composeA

Check whether the output of from_source can feed to_source.

Phase 1: declarative schema string match only.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_sourceYes
from_sourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It clearly discloses that this is only a phase-1 declarative schema string match, which meaningfully sets expectations about the tool's limitations. This is useful context beyond what the schema alone provides.

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 short and front-loaded: the first sentence states the core purpose, and the second adds a critical limitation. Every sentence earns its place with no filler or repetition.

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?

The tool is simple with two string parameters and an output schema, so return-value details are not needed. The description covers the core behavior and limitation, though it leaves some contextual ambiguity about how sources are identified and when this check is appropriate relative to sibling tools.

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 description coverage is 0%, so the description must compensate. It gives relational meaning to both parameters: 'from_source' produces output and 'to_source' receives it. However, it does not describe the expected format or examples, leaving part of the semantics implicit.

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

Purpose4/5

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

The description states a specific action ('Check whether the output... can feed...') and identifies the two resources involved. It is clear about the compositional relationship, though it does not explicitly differentiate itself from the sibling tool meta_check_coherence.

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

Usage Guidelines2/5

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

No explicit guidance explains when to use this tool versus meta_list_sources or meta_check_coherence. The phrase 'Phase 1: declarative schema string match only' implies a preliminary check, but it never states conditions, exclusions, or recommended alternatives.

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

meta_list_sourcesA

List registered sources with current reachability and freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 carry behavioral disclosure. It conveys that the tool reports current reachability and freshness, and 'List' implies a read-only operation. However, it does not explain behavior around the optional object_name parameter, potential network/performance implications, or any side effects.

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, compact sentence that front-loads the primary action and object. Every word contributes useful information, with no redundancy or filler.

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?

For a simple listing tool with one optional parameter and an output schema, the description provides the essential purpose and result characteristics. However, it omits parameter semantics and usage boundaries, leaving some gaps an agent would need to infer.

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

Parameters2/5

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

Schema description coverage is 0% for the only parameter, and the description does not mention object_name at all. The schema gives only a type, title, and default, which is insufficient for an agent to understand how filtering by object_name works or whether it is optional.

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 a specific verb and resource: 'List registered sources', and adds distinguishing detail with 'current reachability and freshness'. This clearly identifies the tool's purpose and sets it apart from siblings like meta_check_coherence and meta_compose.

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 clear context: use this tool when you need an inventory of registered sources with their current status. It does not explicitly state when not to use it or point to alternatives, but sibling names are distinct enough that there is no ambiguity.

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.

  1. 3 tool updatesv0.1.0-alpha
    • First observedmeta_check_coherence
    • First observedmeta_compose
    • First observedmeta_list_sources

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct responsibility: listing registered sources, checking source agreement for an object, and validating source-to-source composability. There is minimal overlap, and the differing parameters make selection unambiguous.

Naming Consistency5/5

All tools use the `meta_` prefix with an imperative snake_case verb (`list`, `check`, `compose`), giving a predictable convention. The slight variation in whether an object follows the verb does not hurt recognizability.

Tool Count5/5

Three tools is a compact but appropriate scope for a focused metadata validation server. Each tool provides a distinct high-level capability with no redundancy.

Completeness4/5

The set covers the core discovery and validation workflows: enumerate sources, check coherence, and test composition. It is missing broader source/object management and only performs schema-string composition matching, so there are minor gaps but no dead ends for the main use case.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers