Mcp Server

org.ptpgev0.30.1更新于 Oct 10, 2026

The open vocabulary of print for AI agents: terms, product envelopes, validation, fingerprint.

已验证Streamable HTTP可网页运行Developer ToolsKnowledge & Memory

概览

AI 生成的概览

只读访问 PTPGE 印刷词汇表:搜索术语、读取产品模板、校验配置,并计算或展开印刷指纹。

功能
将 PTPGE 规范(印刷领域的开放词汇表)以一组只读 MCP 工具的形式提供给助手。助手可以搜索术语、读取术语及其关系和记号、浏览层级、读取产品模板、按模板校验配置、解析 4/4 之类的色彩记号,以及计算或展开 ptpge-cfs/1 指纹。响应为纯 JSON。
适用场景
适合助手需要理解或生成印刷规格的场景:查询印刷术语、检查某配置是否符合产品模板、解析油墨记号,或为印刷订单生成和展开指纹。它是参考与校验服务,不是生产或下单系统。
运行要求
公共服务器是远程 Streamable HTTP 端点,无需密钥或账号。自行运行需要 Python 3 及项目依赖,可选环境变量用于词汇表 API 地址、刷新间隔、日志级别,以及可选的 Basic Auth 或令牌设置。
安装前请注意
公共端点是开放且只读的,不会代你写入或发送数据。若自行托管,可选认证变量 PTPGE_MCP_AUTH_USERS、PTPGE_MCP_HTPASSWD、PTPGE_MCP_TOKENS 和 PTPGE_MCP_TOKENS_FILE 保存凭据;仅在服务器本就应开放时才留空。词汇表数据从所配置的 PTPGE_API_BASE 获取。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "mcp-server": {
      "type": "http",
      "url": "https://mcp.ptpge.org/mcp"
    }
  }
}

README

PTPGE MCP Server

A read-only Model Context Protocol server that exposes the PTPGE specification — the open vocabulary of print — to AI agents.

The vocabulary (terms with permanent URIs, product templates, variables, schemas and registers) is published under CC BY 4.0 at https://api.ptpge.org/v1/. This server loads it, keeps it in memory, reloads when the dataset version changes, and offers it to agents as a small set of MCP tools: search a term, read a term, read a product envelope, validate a configuration, resolve a colour notation, compute and expand a configuration fingerprint (ptpge-cfs/1).

Live, open, no key: https://mcp.ptpge.org/mcp (Streamable HTTP). open.mcp.ptpge.org is an alias.

Add it to your assistant

  • Claude (web or desktop): Settings → Connectors → Add custom connector → https://mcp.ptpge.org/mcp
  • ChatGPT: Settings → Connectors → Add (developer mode) → same URL
  • Claude Code: claude mcp add ptpge --transport http https://mcp.ptpge.org/mcp

Then ask, in any language: «What is a roll fold?» or «Fingerprint an A4 tri-fold brochure, 170 g silk, 4/4».

Tools

ToolWhat it does
ptpge_search_termsFree-text search over the vocabulary, tokenised and language-independent. Hits carry URI, label, level, group, kind (term · supplier · vendor · schema) and score. Deprecated terms are skipped unless asked for.
ptpge_get_termOne term in full: definition, relations (broader / narrower / related), mappings, properties, notation. Accepts a full URI or a relative path.
ptpge_get_versionDataset version, term counts, licence, scheme URL, server version.
ptpge_browseWalk the hierarchy from a node.
ptpge_get_product_envelopeFor a product template: which variables apply, which are required for an identity, which values are allowed.
ptpge_validate_configCheck a configuration (bindings on vocabulary URIs) against its envelope: membership, cardinality, scope, numeric bands, cross-variable rules.
ptpge_resolve_color_notation4/4, 4/1, 1/0 … → ink counts per face in vocabulary terms.
ptpge_fingerprintCanonicalise a validated configuration and compute its ptpge-cfs/1 fingerprint (spec and offer).
ptpge_expand_fingerprintA fingerprint back to its configuration, from the register at ptpge.org/f/.

Responses are plain JSON. The /playground page lets you watch an agent run the loop from a free-text order to a fingerprint, every tool call in the transcript.

Endpoints

PathPurpose
POST /mcpMCP over Streamable HTTP (also GET for the event stream, DELETE to end a session)
GET /health, /healthzLiveness + dataset version
GET /playgroundThe Playground
GET /sseRetired — answers 410 with a pointer to /mcp

Run it yourself

bash
python3 -m venv venv && source venv/bin/activatepip install -r requirements.txtpython -m ptpge_mcp.server          # http://0.0.0.0:8000/mcp

Test with the MCP Inspector: npx @modelcontextprotocol/inspector, transport Streamable HTTP, URL http://localhost:8000/mcp.

bash
pytest -q

Configuration

VariableDefaultPurpose
PTPGE_API_BASEhttps://api.ptpge.org/v1Where the vocabulary is fetched from
PTPGE_REFRESH_SECONDS900How often to check version.json for a new dataset
PTPGE_LOG_LEVELINFOPython logging level
PTPGE_MCP_AUTH_USERS—Optional Basic Auth on the server, comma-separated user:pass pairs. Leave unset for an open server.
PTPGE_MCP_HTPASSWD—Optional path to an Apache htpasswd file used instead of the variable above
PTPGE_MCP_TOKENS / _TOKENS_FILE—Optional per-recipient tokens (?t=), same purpose

The public server at mcp.ptpge.org runs with none of the auth variables set.

Layout

ptpge_mcp/├── server.py           # tools, handlers, Streamable HTTP, Playground route├── data.py             # fetch, cache, index, search├── config.py           # environment-based runtime config├── cfs_resolution.py   # canonicalisation + ptpge-cfs/1├── fingerprint.py, fingermark.py   # hash and mark├── completeness.py     # required variables / unspecified axes├── colornotation.py    # 4/4-style notation → terms├── semantic.py         # embedding search (term_embeddings.npz)├── registerclient.py   # ptpge.org/f/ register client├── playground.py, learningpage.py, missreport.py└── _frame.py           # ptpge.org site frame (generated; do not edit)tests/passenger_wsgi.py       # cPanel/Passenger entry point for the hosted instance.cpanel.yml             # deploy script for the hosted instanceCHANGELOG.md            # semver; one entry per release

Versioning

Semver for the server; the dataset has its own date version (ptpge_get_version). The fingerprint algorithm is a separate contract, ptpge-cfs/1, and does not change with server releases.

Licence

Code: Apache License 2.0. Vocabulary and data: CC BY 4.0, held by PTPGE, a non-profit association (being formed). See ptpge.org/governance.

Registry

Listed in the official MCP Registry as org.ptpge/mcp-server (server.json in this repository; published with mcp-publisher, namespace verified by a DNS record on ptpge.org).

来源:README.md,提交 4f6cbe3

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.30.1最新Oct 10, 2026