Skip to main content

phocinae-mcp

斑海豹(Phocinae)审批/推理能力的 MCP stdio server:把 phocinae-guard 的命令审批门(gate)和斑海豹 P0 推理协议(classify / route / score)暴露成 MCP 工具,接入 Cline / Windsurf / Zed / Codex CLI 等仅支持 MCP 的编码代理。

  • 纯标准库(Python ≥ 3.8),零第三方依赖;MCP 协议为手写 JSON-RPC 2.0 stdio 实现。
  • 复用 phocinae-guard 的 l0_judge / decide(自动探测同级目录);guard 不存在时 gate 自动降级为纯 HTTP noul+score 两问实现。
  • fail-closed 语义:服务不可用时 gate 返回 deny + 原因说明,其余工具返回明确错误(MCP isError:true),绝不静默放行。
  • 许可证:Apache-2.0(见 LICENSE)。

工具一览

工具 参数 返回 fail-closed 行为
gate command(必填)、cwd?、server? decision ∈ allow|deny|ask、layer(L0/L1/fail_closed)、reason、noul、score 服务不可用/判定异常 → decision=deny + 原因
classify state(必填)、labels(必填,≥1 个非空字符串)、server? choice(0 起下标)、label、confidence 服务不可用 → 明确错误(isError)
route state(必填)、tools(必填)、server? choice、tool(选中的工具名) 服务不可用 → 明确错误(isError)
score state(必填)、criteria(必填)、server? score ∈ [2, 10]、range 服务不可用/应答越界 → 明确错误(isError)
  • server? 为工具级服务地址覆盖,等价于进程级 --server;地址解析顺序:工具参数 > --server CLI > PHOCINAE_MCP_SERVER env > http://127.0.0.1:8155。
  • gate 判定链路:L0 确定性表(白名单/黑名单,本地、离线、毫秒级)→ 灰区时若启用 --l1-enabled 再调 /v1/systemone 两问(noul 放行概率 + score 风险 2–10,阈值 0.65 / 7 / 4 合成取最严格);L1 未启用(默认:150M 权重未做命令审批域校准)则灰区直接 fail-closed deny。

服务协议(P0)

POST /v1/systemone
{"model": "Phocinae-Largha-150M-v1", "state": str,
 "questions": [{"id", "type": noul|choice|score, "options"?, "threshold"?}]}
→ {"model", "answers": {id: 值}, "usage", "answer_confidence"}

noul=bool、choice=int 下标、score=2–10。应答兼容扁平值与旧 mock 嵌套对象两种形状。

Install

无需安装即可运行(仓库根目录执行);也可本地 pip 安装:

cd phocinae-mcp
python3 -m phocinae_mcp --version          # phocinae-mcp 0.1.0
pip install -e .                            # 可选:提供 phocinae-mcp 命令

运行测试(子进程启动 server、全生命周期 JSON-RPC 帧、失败分支):

python3 tests/test_mcp.py                   # 22 项

配置

项 CLI 环境变量 默认
服务地址 --server http://host:port PHOCINAE_MCP_SERVER(兼容 PHOCINAE_GUARD_SERVER) http://127.0.0.1:8155
请求超时 --timeout 5.0 PHOCINAE_MCP_TIMEOUT 5.0
guard.py 路径 --guard /path/to/guard.py PHOCINAE_MCP_GUARD_PATH(兼容 PHOCINAE_GUARD_PATH) 自动探测 ../phocinae-guard/guard.py
启用 L1 模型裁决 --l1-enabled PHOCINAE_MCP_L1_ENABLED=1 关(灰区 fail-closed)
模型名 --model PHOCINAE_MCP_MODEL Phocinae-Largha-150M-v1

客户端接入示例

Cline / Windsurf(mcpServers)

{
  "mcpServers": {
    "phocinae": {
      "command": "python3",
      "args": ["-m", "phocinae_mcp", "--server", "http://127.0.0.1:8155"],
      "env": { "PHOCINAE_MCP_L1_ENABLED": "0" }
    }
  }
}

(若已 pip install -e .,command 可写 phocinae-mcp。)

Zed(context_servers)

{
  "context_servers": {
    "phocinae": {
      "command": {
        "path": "python3",
        "args": ["-m", "phocinae_mcp", "--server", "http://127.0.0.1:8155"]
      }
    }
  }
}

Codex CLI(~/.codex/config.toml)

[mcp_servers.phocinae]
command = ["python3", "-m", "phocinae_mcp", "--server", "http://127.0.0.1:8155"]

完整示例见 mcp_config.example.json。

安全声明

  1. fail-closed 是硬语义:服务不可用、超时、响应异常、应答字段缺失/越界时,gate 一律返回 deny 并附原因;classify/route/score 返回明确错误。任何情况下都不会在服务异常时静默放行。
  2. deny 不可覆盖:gate 返回 deny 后无任何放行通道;ask 需人工确认(由宿主代理实现确认流程)。
  3. L1 默认关闭:斑海豹 150M 权重尚未做命令审批域校准,gate 默认只用本地确定性 L0 表;--l1-enabled 是显式选择的实验开关。
  4. 纯本地部署:本仓库不包含任何发布/推送/上传逻辑,仅本地运行与本地测试;禁止将本服务暴露到公网。
  5. 集成方应对 gate 的 deny/ask 结果做强制阻断(exit 非零 / 拒绝执行),并建议在宿主侧对判定追加审计日志(guard 侧自带 JSONL 审计)。

License

Apache License 2.0 —— 见 LICENSE。

Metadata

Release files for phocinae-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for phocinae-mcp 0.1.1
File Size Uploaded
phocinae_mcp-0.1.1.tar.gz 25.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for phocinae-mcp 0.1.1
File Interpreter ABI Platform
phocinae_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 46.1 kB

Release files / phocinae_mcp-0.1.1.tar.gz

Download URL phocinae_mcp-0.1.1.tar.gz
Size 25.0 kB
Tags Source
SHA-256 checksum
How to use checksums
552216d39ddcc3be1f4e2ac628cc13641fc0c78c8f24e8850af2cb39e819a01f
BLAKE2b-256 checksum
How to use checksums
7a4cccfde9674dff273b4f7c3c38fa3287f87570c738cc2cc855b0f1e339b78e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / phocinae_mcp-0.1.1-py3-none-any.whl

Download URL phocinae_mcp-0.1.1-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c392ef533dc3f7e3bfdd0675efccf50d3970e36d0ecf476a94b61b9244c568e
BLAKE2b-256 checksum
How to use checksums
ee91b0e7a268be610def4457e4cfff57899d3cc7528154b4c69c73fa48a23bc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page