Token导航 LogoToken导航

MCP Server · 文档知识

pcl MCP

PCL是一个为AI编程代理提供持久化、结构化产品知识的工具,通过混合搜索和实时索引帮助代理按需获取产品文档。

stdio官方级别未说明来源级核验工具 9pcl-mcp
AI编程辅助混合搜索TypeScriptClaude结构化数据CursorWindsurf

快速开始

作者 / 组织
MichaelGorski
提供方
MichaelGorski
运行时
Node.js

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

pcl MCP 属于文档知识类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,适配 Claude、Cursor、Windsurf,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

文档知识

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

npx pcl-mcp init

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

PCL——产品上下文层

为AI编码代理提供关于您产品的持久、结构化的知识。

npx pcl-mcp init

PCL不会在每次会议上重新解释你的角色、旅程和架构决策,而是通过MCP按需提供服务。任何代理(Claude Code、Cursor、Windsurf)在需要时都会准确地查询它需要什么。

______________________________________________________________________

为什么是PCL?

没有PCL,每个编码会话都从头开始:

  • 除非您将产品文档粘贴到提示中,否则代理商无法找到您的产品文档
  • 上下文窗口因无关信息而变得臃肿
  • 你每次都要重新解释角色、业务规则和规范
  • 没有护栏——代理人做出的假设违反了你的商业规则

使用PCL,代理商按需加载产品知识:

  • 渐进式披露——会话开始成本约600个代币(产品摘要+关键规则)
  • 混合搜索(BM25+语义)无需您引导即可找到正确的上下文
  • 在文件保存时实时重新索引——编辑规范,代理会立即看到它
  • 结构化Zod模式——代理每次都能获得可预测、可解析的前端内容

具体用例

你问你的经纪人: *“构建结账流程”*

没有PCL: 您将您的计费规则文档、角色文件、行程图和规范粘贴到聊天中。在代理编写一行代码之前,需要4000个令牌。下一节课,你再做一次。

使用PCL: 代理在会话开始时自动加载关键计费规则(约200个令牌)。当它启动结账功能时,它会拉取相关角色,获取旅程步骤,并检查规范的验收标准——所有这些都是按需的,只有需要的。每次会话,自动。

______________________________________________________________________

快速开始

npm install pcl-mcp
npx pcl init            # prompts before adding example files, sets up CLAUDE.md
# add MCP config (see Agent Configuration below), then start a new agent session

______________________________________________________________________

堆栈

层技术为什么
协议MCP(stdio)通用——适用于所有主要代理
存储SQLite+FTS5零基础设施,git友好,离线
关键字搜索BM25通过FTS5(标题加权10×)精确术语、ID、专有名词在同类中最好
语义搜索all-mpnet-base-v2 (本地,768d)质量高于MiniLM,API成本为零,约3ms/doc
嵌入策略拆分正文+标题嵌入分离正文和标题匹配的语义通道
混合融合自适应RRF(语料库大小感知k)在小型和大型语料库上都有更好的召回率
分数过滤15%的差距阈值防止低质量的尾部结果浮出水面
交叉引用自动前端链接解析将相关文件自动拉入结果
验证Zod模式代理获得可预测、可解析的前端内容
文件查看Chokidar v4保存时实时重新索引

______________________________________________________________________

先决条件

Node.js>=22 (必填——PCL使用现代节点API)

______________________________________________________________________

安装

npm install pcl-mcp
npx pcl init            # creates ./product with templates

也可以在GitHub软件包上找到 @michaelgorski/pcl-mcp.

______________________________________________________________________

导入现有文档

如果您的仓库中已经有markdown文档,PCL可以自动扫描、分类和导入它:

npx pcl init --scan         # scan + import existing docs, then scaffold remaining templates
npx pcl init --scan-only    # scan + import only, skip template scaffolding

扫描仪:

  • 步行至您的仓库 .md 文件(跳过 node_modules, dist, .git等等)
  • 按目录名、文件名、frontmatter键和内容模式对每个文件进行分类
  • 使用适当的frontmatter将匹配的文件转换为PCL格式
  • 将它们复制到 product/ 正确类别下的文件夹
  • 跳过已导入文件的类别(无重复模板)

支持的分类: 人格面具, 旅程, 规格, 决定, 领域, 产品

______________________________________________________________________

代理配置

可与任何MCP兼容的代理配合使用。配置示例如下。

克劳德代码-- .claude/mcp.json

{
  "mcpServers": {
    "pcl": {
      "command": "node",
      "args": ["./node_modules/pcl-mcp/dist/src/server.js"]
    }
  }
}

光标-- settings.json

"mcp.servers": {
  "pcl": {
    "command": "npx",
    "args": ["pcl-mcp", "serve"]
  }
}

Windsurf——MCP配置

{
  "mcpServers": {
    "pcl": {
      "command": "npx",
      "args": ["pcl-mcp", "serve"]
    }
  }
}

______________________________________________________________________

文件结构

/product
  product.md              ← north star doc (required)
  personas/
    001-max.md            ← one persona per file
  journeys/
    001-onboarding.md     ← one user journey per file
  specs/
    001-auth-flow.md      ← feature specs with acceptance criteria
  decisions/
    001-use-nextjs.md     ← architecture decision records (ADRs)
  domain/
    core-rules.md         ← business rules agents must never violate
  .pcl.db                 ← SQLite index (auto-generated, gitignore this)

______________________________________________________________________

代理可用的工具

工具参数描述
pcl_product_summary--加载产品北极星文档。会话开始时呼叫。
pcl_get_personaid按ID获取用户角色。在任何面向用户的功能之前调用。
pcl_get_journeyid按ID获取用户旅程,包括详细步骤。
pcl_get_specid按ID获取功能规格,包括验收标准
pcl_get_decisionid按ID获取架构决策记录(ADR)
pcl_get_domainid 或 "*critical"按ID获取域规则。Pass "*critical" 加载所有关键规则。
pcl_listtype: "personas""journeys""specs""decisions""domain"列出给定类型的所有文件,包括ID、标题和摘要。
pcl_searchquery, mode? ("hybrid""semantic""keyword"), types?, top_k?跨所有产品文件的混合语义+关键字搜索。
pcl_relatedid, top_k?查找与给定文件ID语义相关的文件

______________________________________________________________________

提示和资源

除了工具,PCL还公开了MCP提示和资源:

提示: session-start --返回产品摘要+所有关键域规则。代理可以在每个编码会话开始时调用此函数,以便在不加载每个文件的情况下定位自己。

资源: pcl://files/{type}/{id} --每个索引文件都可以作为MCP资源使用。代理可以直接通过资源URI浏览和读取单个文件(例如。, pcl://files/persona/example-user).

______________________________________________________________________

混合搜索的工作原理

PCL运行三个并行检索信号,并将其与往复式秩融合融合:

query: "what does Max find frustrating about onboarding"

BM25 (FTS5, title-weighted 10×):
  → persona-max, journey-onboarding, spec-magic-link
  ↓ ranked by bm25(title=10×, body=1×) — exact terms, IDs, proper nouns

Semantic — body embedding (all-mpnet-base-v2, 768d):
  → journey-onboarding, persona-max, domain-core-rules
  ↓ cosine similarity on full-text embedding

Semantic — title embedding (all-mpnet-base-v2, 768d):
  → persona-max, journey-onboarding, spec-onboarding-ux
  ↓ cosine similarity on title + summary embedding

Adaptive RRF (k = corpus_size / 10):
  score(d) = Σ 1 / (k + rank(d))   fused across all three lists

Score gap filter (15% threshold):
  Drops results below 0.15 × top_score — removes noise

Cross-reference resolution:
  journey-onboarding.frontmatter.persona = "max"
  → auto-includes persona-max even if it ranked outside top-k

Result:  1. journey-onboarding  (0.94)
         2. persona-max         (0.87)
         3. spec-onboarding-ux  (0.71)

为什么要拆分嵌入? 正文和标题具有不同的语义信号。一个类似的查询 *“结账角色”* 即使其正文内容主要是人口统计数据,也应按标题匹配人物角色文件。分别对它们进行索引,为融合步骤提供了两个不同的语义通道,而不是一个稀释的通道。

为什么选择自适应RRF k? 修复了k=60的小语料库(10-20个文件)的平滑排名问题。语料库感知k对小集合进行缩减,使强匹配与弱匹配分开。

______________________________________________________________________

测试和基准

PCL附带了完整的测试套件和多维基准框架。

测试

npm test            # run all tests (vitest)
npm run test:watch  # watch mode

六个测试套件覆盖了整个堆栈:

套房保险范围
db.test.tsSQLite操作、FTS5查询、嵌入存储
embeddings.test.ts嵌入生成、缓存命中、维度检查
indexer.test.ts文件发现、模式提取、更改检测
schemas.test.ts所有文件类型的Zod frontmatter验证
search.test.ts混合搜索、RRF、多跳分解、交叉引用
tools.test.tsMCP工具处理程序、响应格式、错误路径

基准测试

npm run bench           # all benchmarks
npm run bench:perf      # latency benchmarks (search + embedding speed)
npm run bench:quality   # search quality: Precision@k, Recall@k, NDCG, MRR
npm run bench:tokens    # token efficiency across search modes
npm run bench:ablation  # hybrid vs keyword-only vs semantic-only comparison
npm run bench:ai        # Claude-judged result quality (requires ANTHROPIC_API_KEY)
npm run bench:report    # generate markdown report from results
套房措施
性能搜索+嵌入延迟(p50/p95)
搜索质量Precision@k, Recall@k标记语料库上的NDCG、MRR
令牌效率跨搜索模式每次查询消耗的令牌
消融质量增量:混合vs仅关键字vs仅语义
人工智能质量克劳德对top-k结果的相关性评分进行了判断

______________________________________________________________________

人工工作流

这个系统的好坏取决于你投入的东西。纪律:

  • 产品决策? → 写a decisions/ ADR(5分钟)
  • 正在计划新功能? → 写a specs/ 先文件,再编码
  • 用户研究或反馈? → 更新角色 anti_patterns 或 jobs_to_be_done
  • 业务规则更改? → 更新 domain/ 先编码
  • 发现新用户旅程? → 添加 journeys/

代理人做剩下的事。

______________________________________________________________________

微笑

product/.pcl.db      # SQLite index — auto-regenerated

______________________________________________________________________

许可证

麻省理工学院

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

AI编程辅助TypeScript本地部署知识管理混合搜索实时索引结构化数据

支持客户端

ClaudeCursorWindsurf

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor、Windsurf,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
pcl MCP

MCP World · 本页

9stdio有1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

pcl MCP 怎么安装?

公开资料给出的安装命令是 npx pcl-mcp init,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

pcl MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

pcl MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

pcl MCP 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

pcl MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor、Windsurf;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP