Skip to main content
Glama
73882

feature-separate-eval-mcp

by 73882

feature-separate-eval-mcp

feature-separate-eval 的 Python 后端抽成独立 MCP server。Skill 本身只保留流程与安全边界,实际调用以下 MCP tools:

  • feature_separate_eval_status:列出拆解记录,零网络调用。

  • feature_separate_eval_check:检查记录、原文和 claim 对齐;专利记录只回取 CLMS

  • feature_separate_eval_run:执行确定性检查、粒度闸门和一次 Judge 审计。

服务支持本地 STDIO 和 Streamable HTTP。两种模式都使用同一套后端逻辑。

本地运行

需要 Python 3.10+:

python3.10 -m venv .venv
.venv/bin/pip install -e .
cp .env.example .env

编辑 .envCC_EVAL_DATA_DIR 必须与 patent-tech-feature-separate 使用同一个绝对路径;不要提交真实 token。

STDIO:

.venv/bin/feature-separate-eval-mcp

Streamable HTTP:

.venv/bin/feature-separate-eval-mcp --transport streamable-http

HTTP MCP endpoint 默认为 http://127.0.0.1:8000/mcp

Related MCP server: hallumark

连接 Claude Code

公开仓库可以直接克隆,不需要 GitHub token:

git clone https://github.com/73882/feature-separate-eval-mcp.git
cd feature-separate-eval-mcp
python3.10 -m venv .venv
.venv/bin/pip install -e .
cp .env.example .env

.env 中配置网关与共享 ledger 路径后,用绝对路径注册用户级 STDIO server:

claude mcp add --scope user --transport stdio feature-separate-eval -- \
  /absolute/path/feature-separate-eval-mcp/.venv/bin/feature-separate-eval-mcp
claude mcp list

重新打开 Claude Code,在 /mcp 中确认 server 为 connected。Claude Code 也支持把配置写进项目根 .mcp.json;用户级注册避免把本机绝对路径提交到项目。 官方说明:https://code.claude.com/docs/en/mcp

.env 迁移

原项目里的变量分为两组:

  • MCP 使用:PATSNAP_API_BASE、Judge 变量以及新增的 CC_EVAL_DATA_DIR、两个精确 host 白名单。

  • MCP 不使用:REAL_TARGET_URLAGENT_WORK_DIRPROXY_LOG_DIR;它们属于 Claude 代理或原专利客户端的文件输出配置。

若内部网关只有 HTTP,必须显式配置:

CC_EVAL_ALLOW_INSECURE_HTTP=true
CLAIM_DECOMPOSITION_JUDGE_ALLOWED_HOSTS=judge.internal.example
PATSNAP_ALLOWED_HOSTS=patent.internal.example

只允许填写 URL 中的精确 hostname。公网端点保持该开关为 false 并使用 HTTPS。 PATSNAP_KEY 在内部端点不要求鉴权时可以为空。Judge token 仍为必填。 CLAIM_DECOMPOSITION_JUDGE_TOKEN_PREFIX="Bearer "Bearer 都会规范为一个空格, 无需保留尾随空格。

不要把真实 token 提交到 Git;.env 已被 .gitignore 排除。若 token 曾出现在聊天、 日志或提交中,应立即吊销并换新。

连接 Codex(可选)

Codex 支持 STDIO 与 Streamable HTTP,并从 ~/.codex/config.toml 或受信项目的 .codex/config.toml 读取配置:https://developers.openai.com/codex/mcp

远程 HTTP 示例:

[mcp_servers.feature-separate-eval]
url = "https://your-host.example/mcp"
tool_timeout_sec = 300
required = true

公开部署必须在反向代理或 MCP OAuth 层完成鉴权;不要把无鉴权的评测端点暴露到公网。

数据与安全边界

  • status 只读 ledger,不联网。

  • check 对自由文本完全本地;对专利只向白名单 PatSnap host 发送专利号并请求 CLMS

  • run 向 Judge 发送当前记录的 claim 原文、拆解特征和确定性检查结果。

  • 所有上游 URL 必须命中精确 host allowlist。默认只允许 HTTPS;可信内网 HTTP 必须通过 CC_EVAL_ALLOW_INSECURE_HTTP=true 显式开启。

  • MCP tool 参数 allow_network 默认为 false;调用方必须先向用户说明发送范围并取得确认。

测试

.venv/bin/pip install -e ".[test]"
.venv/bin/pytest

Available Tools

3 tools
feature_separate_eval_checkA

Check whether one record is evaluable without calling Judge.

Patent records query only the CLMS field from the configured PatSnap host and therefore require allow_network=true after user confirmation. Free-text records are checked locally and do not require network permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idNo
allow_networkNo
patent_numberNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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 that patent records query only the CLMS field from the PatSnap host, require allow_network=true after user confirmation, are checked locally for free-text records, and do not invoke Judge. This adds meaningful behavioral context beyond what the schema 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 compact and front-loaded with the core purpose, followed by concise edge-case-specific guidance. Every sentence adds value, and there is no redundant or padding text.

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 description explains the key behavioral distinction, but it leaves operational ambiguity around how to specify a patent record vs a free-text record. Since there are three parameters with zero schema description coverage, the description should more explicitly connect record_id and patent_number to the two record types. The presence of an output schema reduces the need to describe return values, but parameter usage remains incomplete.

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 does explain allow_network's role and links network permission to patent vs free-text record types. However, it does not explicitly define how record_id and patent_number map to these record types or when each is required, leaving some parameter semantics implicit.

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 states a specific action ('Check whether one record is evaluable') and adds a clear differentiator: it does so 'without calling Judge.' This separates it from the sibling tools feature_separate_eval_run (executes evaluation) and feature_separate_eval_status (reports status).

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 for when to use the tool, distinguishing patent records from free-text records and specifying network requirements for each. It does not explicitly name alternatives or state when not to use the tool, but the behavior is contextually clear.

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

feature_separate_eval_runA

Evaluate one decomposition and return its human report and persisted result.

This sends claim text, decomposed features, and deterministic checks to the configured Judge. Patent records first send the patent number to PatSnap and request only CLMS. Set allow_network=true only after the user confirms this exact scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idNo
judge_modelNo
keep_pendingNo
allow_networkNo
patent_numberNo
max_feature_densityNo
max_features_per_claimNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It does well by disclosing that data is sent to a configured Judge, that patent records trigger an external PatSnap call requesting only CLMS, that results are persisted, and that network access must be approved. It does not cover all possible side effects or failure behavior, but the most consequential behaviors are transparent.

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 tightly written sentences. It front-loads the core purpose, then provides the essential process detail, and ends with an important safety condition. No repeated or redundant information is present.

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 description covers purpose, the Judge interaction, the patent-network special case, persistence, and the allow_network constraint. Given the tool has 7 parameters, no annotations, and sibling tools for status/checking, it would benefit from explaining keep_pending and the two max-feature parameters, and from routing the agent to the correct sibling when appropriate.

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 parameter semantics must come from the description. It adds meaning for allow_network, patent_number, judge_model, and implicitly record_id by mentioning decompositions, Judge, PatSnap, and the confirmation condition. However, keep_pending, max_feature_density, and max_features_per_claim remain unexplained, so there are clear gaps.

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 clearly states the tool's job: 'Evaluate one decomposition and return its human report and persisted result.' This is a specific verb and resource, and the mention of a returned report distinguishes it from the likely status/check siblings. It stops short of explicitly contrasting itself with those siblings, so it gets a 4 rather than a 5.

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 description implies when to use the tool: when a decomposition needs to be evaluated. It gives a concrete conditional for patent records and an explicit safety rule for allow_network, which is useful. However, it does not mention the sibling tools or state when to use this tool instead of feature_separate_eval_status or feature_separate_eval_check.

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

feature_separate_eval_statusA

List recorded decompositions and the next pending record; never uses network.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/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 adds a meaningful behavioral trait: 'never uses network,' which signals a read-only, side-effect-free operation beyond what the schema shows. It does not discuss side effects, but listing operations are inherently non-mutating.

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 one compact sentence with no filler. The core behavior is front-loaded, and the network disclaimer adds relevant context without bloating the text.

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?

For a zero-parameter read-only status tool with an output schema present, the description is sufficiently complete. It states what the tool lists and explicitly notes the network behavior, leaving no critical ambiguity for invocation.

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 tool has zero parameters, so parameter-level semantics are irrelevant. Baseline 4 applies because there is no parameter burden for the description to carry.

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 uses a specific verb ('List') and concrete resources ('recorded decompositions and the next pending record'), making the purpose immediately clear. It does not explicitly name sibling tools, but the behavior described is distinct enough from check/run.

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?

The description gives no explicit guidance about when to use this tool versus its siblings. 'Never uses network' hints at a safe, non-I/O operation, but no when-to-use or when-not-to-use context is provided.

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

TDQS

A4.2/5.0
Disambiguation5/5

Each tool covers a distinct stage of the evaluation workflow: status lists pending records, check performs a pre-flight evaluability test, and run executes the actual evaluation. There is no meaningful overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow the same feature_separate_eval_ prefix plus a single clear verb: status, check, run. The naming pattern is entirely consistent and predictable.

Tool Count5/5

Three tools is appropriate for this focused evaluation pipeline. Each tool provides a distinct, necessary function, and none are redundant or ornamental.

Completeness5/5

The tool set covers the full workflow from discovering the next pending record, to verifying evaluability, to running the evaluation and persisting results. No critical missing operation is evident for the server's stated purpose.

Maintenance

ActivityMaintained
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/73882/feature-separate-eval-mcp'

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