psrmcp
把脉冲星天文软件链(dspsr / psrchive / tempo2 / psrcat / PINT)封装成 MCP(Model Context Protocol)Server:面向任务的工具、参数受控、结果结构化、全程可追溯。
仓库:https://gitlab.com/zhangyazhou416/psrmcp
- 功能总览:docs/FEATURES.md(能做什么、19 个工具一览)
- 使用教程:docs/TUTORIAL.md(安装配置、接入客户端、完整处理链实战)
- 设计方案:docs/DESIGN.md
- 工具契约:docs/TOOLS.md(19 个工具的输入/输出 Schema)
- 一键安装脉冲星软件栈:scripts/install_pulsar_stack.sh(全源码编译进
~/.pulsar,详见 docs/INSTALL.md)
快速开始
# 1. 安装脉冲星软件栈(可选,缺省时服务器会优雅降级并在 pulsar_environment 中报告)
bash scripts/install_pulsar_stack.sh # 加 --with-presto 连 PRESTO 一起装
# 2. 准备 MCP 服务器环境
uv sync
# 3. 生成默认配置并启动(stdio)
uv run psrmcp --init-config ~/.psrmcp.toml
PSRMCP_CONFIG=~/.psrmcp.toml uv run psrmcp
接入 MCP 客户端(如 Claude Code / Desktop)
{
"mcpServers": {
"psrmcp": {
"command": "uv",
"args": ["--directory", "/path/to/psrmcp", "run", "psrmcp"],
"env": {"PSRMCP_CONFIG": "~/.psrmcp.toml"}
}
}
}
开发
uv run pytest -q # 单元测试(不需要安装任何后端)
PSRMCP_CONTRACT=1 uv run pytest tests/contract # 契约测试(需要已安装软件栈)
发布到 PyPI
CI 自动发布(.gitlab-ci.yml,PyPI Trusted Publishing / OIDC,CI 中无长期凭据):
git tag v0.1.0 && git push origin v0.1.0 # 打 tag 即构建并上传(tag 与 version 保持一致)
首次发布前需在 pypi.org 登记 pending publisher(Owner zhangyazhou416、Repository psrmcp、Workflow .gitlab-ci.yml),见 CI 文件顶部注释。手动发布:uv build && uv publish。
状态
v0.1.0 — MVP(Phase 0–2):环境自检、数据发现、星表查询、archive 检查/转换/合并、消色散、RFI、标准轮廓、TOA、PINT 计时拟合与诊断。
许可
Metadata
Release files for psrmcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| psrmcp-0.1.0.tar.gz | 269.1 kB | Without provenance | Details for psrmcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| psrmcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for psrmcp-0.1.0-py3-none-any.whl |
Total release size: 354.2 kB
Release files / psrmcp-0.1.0.tar.gz
| Download URL | psrmcp-0.1.0.tar.gz |
|---|---|
| Size | 269.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0001f636bb4aa6659ac8f3657f995c9fe57bd36c3f58e42aa03e328b9bc859ee
|
|
BLAKE2b-256 checksum How to use checksums |
29d3bcb3fa7418dc3488938b68eff38b8cbe02183e1cfdcf6a05c3ea14e8f860
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Deepin","version":"25","id":"crimson","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / psrmcp-0.1.0-py3-none-any.whl
| Download URL | psrmcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 85.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f951285096c8e0efda653e300aaf49534153bd93dd84df0fee7e6b8cf0022d22
|
|
BLAKE2b-256 checksum How to use checksums |
e3fc9e511458787f2e1710a322def057a5ff18b9e934d402dd9cf411e053b76e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Deepin","version":"25","id":"crimson","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for psrmcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.