{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_b4vtqcqfjbnp","handle":"ipr-mcp-server","url":"https://wellknown.network/agents/ipr-mcp-server","links":{"self":"https://wellknown.network/agents/ipr-mcp-server/record.json","html":"https://wellknown.network/agents/ipr-mcp-server","markdown":"https://wellknown.network/agents/ipr-mcp-server/record.md","api":"https://wellknown.network/api/v1/agents/ipr-mcp-server","status":"https://wellknown.network/api/v1/agents/ipr-mcp-server/status","claim":"https://wellknown.network/agents/ipr-mcp-server/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ipr-mcp-server/claim.json","badge":"https://wellknown.network/agents/ipr-mcp-server/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ipr-mcp-server/history","tools":"https://wellknown.network/api/v1/agents/ipr-mcp-server/tools"},"ard":{"identifier":"urn:air::server:ipr-mcp-server","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ipr-mcp-server","summary":"MCP server integrating with Unitrust ipr.tsa.cn copyright solidification APIs.","description":"• # IPR MCP Server\n  **为大模型提供面向 Unitrust IPR 网关的固化、检索与回调能力，支持 MCP stdio 工具链。**\n\n  ---\n\n## 目录\n\n- [概览](#概览)\n\n- [主要特性](#主要特性)\n\n- [安装与运行](#安装与运行)\n\n- [配置项](#配置项)\n\n- [MCP 客户端集成](#mcp-客户端集成)\n\n- [可用工具](#可用工具)\n\n- [架构速览](#架构速览)\n\n- [项目结构](#项目结构)\n\n- [开发与测试](#开发与测试)\n\n- [安全提示](#安全提示)\n\n- [许可证](#许可证)\n  \n  ---\n\n## 概览\n\n  IPR MCP Server 是一个 Python 实现的 MCP（Model Context Protocol）服务器，面向 Unitrust ipr.tsa.cn 测试网关。它封装了脱敏哈希固化、源文件上传、证据下载、记录查询以及回调日志持久化等能力，\n  支持被各种 MCP 客户端（如 Claude Desktop、Cherry Studio 等）直接调用。\n\n  ---\n\n## 主要特性\n\n- **工具化接口**：`ipr_apply_desensitized`、`ipr_apply_with_source`、`ipr_download_assets`、`ipr_search_records`、`ipr_calc_file_hash` 全部暴露为 MCP `call_tool`。\n\n- **RSA2 签名管线**：内置参数排序、私钥加载、SHA256withRSA 签名与 `Content-MD5` 生成。\n\n- **源文件直传**：自动 PUT OSS 上传并携带 `Content-MD5`、`x-oss-forbid-overwrite`。\n\n- **回调日志**：`ipr-mcp-callback` FastAPI 服务即时返回 `success`，同时写入 SQLite。\n\n- **持久化与审计**：`Storage` 层将每次固化请求与回调记录入库，可用于调试或归档。\n\n- **可脚本化示例**：`scripts/apply_source_demo.py` 演示端到端流程，`tests/manual_apply.py` 用于手动对拍。\n  \n  ---\n\n## 安装与运行\n\n```bash\ngit clone https://github.com/your-org/ipr-mcp-server.git\ncd ipr-mcp-server\n\npython -m venv .venv\n. .venv/bin/activate\npip install -e .[dev]\n\ncp .env.example .env  # 填写 TSA_APP_ID、TSA_PRIVATE_KEY_PEM 等\n```\n\n# 启动 MCP stdio 服务\n\n```bash\nipr-mcp-server\n```\n\n# 启动 MCP WebSocket 服务（示例 :9000，路径 /mcp/ipr）\n\n```bash\npython -m ipr_mcp_server.server --ws 0.0.0.0:9000 --ws-path /mcp/ipr\n# 或使用入口命令：\nipr-mcp-server --ws-host 0.0.0.0 --ws-port 9000 --ws-path /mcp/ipr\n```\n\n# 启动 FastAPI 回调监听（:8080）\n\n```bash\nipr-mcp-callback\n```\n\nDocker 方式：\n\n```bash\ndocker build -t ipr-mcp-server .\ndocker run --rm -it \\\n  -e TSA_APP_ID=xxx \\\n  -e TSA_PRIVATE_KEY_PEM=\"$(cat private.pem)\" \\\n  -e CALLBACK_PUBLIC_URL=https://host/callbacks/tsa \\\n  ipr-mcp-server\n```\n\n———\n\n## 配置项\n\n| 环境变量                | 说明                                 | 默认值                       |\n| ------------------- | ---------------------------------- | ------------------------- |\n| TSA_BASE_URL        | 网关根地址                       …","publisher":{"name":"Codex Automation","url":null},"homepage":null,"repository":null,"version":"0.1.1","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:ipr-mcp-server","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.version-control","name":"Version Control","confidence":0.745,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"ipr-mcp-server","registry":"pypi","observedAt":"2026-09-15T21:22:05.868Z","publishedAt":"2025-12-02T01:35:30.580552Z","latestVersion":"0.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"ipr-mcp-server","url":"https://pypi.org/project/ipr-mcp-server/","firstSeenAt":"2026-09-09T22:21:58.972Z","fetchedAt":"2026-09-15T21:20:20.041Z","normalizedAt":"2026-09-15T21:20:20.041Z"}]},"firstSeenAt":"2026-09-09T22:21:58.972Z","updatedAt":"2026-09-15T21:22:05.868Z"}