# StarWhisper Observatory Calculator
[](https://badge.fury.io/py/starwhisper-observation-calculator)
[](https://pypi.org/project/starwhisper-observation-calculator/)
[](https://opensource.org/licenses/MIT)
一个用于计算天文目标可观测性的Python包,支持恒星、深空天体和太阳系天体。提供MCP(Model Context Protocol)服务接口,可与支持MCP的AI助手集成。
## 🌟 主要特性
- 🔭 **多目标支持**: 恒星、深空天体、太阳系天体
- 📍 **灵活观测站**: 支持自定义观测站位置
- 🌙 **月距约束**: 考虑月球干扰的可观测性分析
- 📊 **高度曲线**: 生成24小时高度变化曲线
- 🌐 **Web API**: 提供RESTful API接口
- 🤖 **MCP服务**: 标准MCP协议,支持AI助手集成
- 📱 **命令行工具**: 简单易用的CLI界面
## 🚀 快速开始
### 安装
```bash
# 基本安装
pip install starwhisper-observation-calculator
# 或使用 uv
uv pip install starwhisper-observation-calculator
# 安装Web服务支持
pip install starwhisper-observation-calculator[web]
# 安装完整功能
pip install starwhisper-observation-calculator[all]
```
### 基本使用
```python
from starwhisper_observation_calculator import ObservabilityCalculator
# 创建计算器(默认兴隆观测站)
calculator = ObservabilityCalculator(
latitude=40.393333,
longitude=117.575278,
altitude=900.0
)
# 计算Vega可观测性
result = calculator.calculate_observability("Vega")
print(result)
```
### 命令行使用
```bash
# 基本使用
observability-calculator Vega
# 指定观测站
observability-calculator moon --latitude 40.393333 --longitude 117.575278
# 自定义约束条件
observability-calculator M31 --min-altitude 20 --min-moon-separation 45
```
## 🤖 MCP服务
本包提供完整的MCP服务,可与支持MCP的AI助手(如Claude Desktop、Cursor等)集成。
### 启动MCP服务
#### 方法一:使用 uvx(推荐,无需安装)
```bash
# 直接运行MCP服务
uvx starwhisper-observation-calculator
# 运行计算器
uvx starwhisper-observation-calculator --calculator Vega
# 启动Web服务
uvx starwhisper-observation-calculator --web --port 8080
```
#### 方法二:本地安装后使用
```bash
# 启动MCP服务
observability-mcp
# 或直接使用python模块
python -m starwhisper_observation_calculator.mcp_server
```
### MCP配置
#### 方法一:使用 uvx(推荐)
```json
{
"mcpServers": {
"starwhisper-observation": {
"command": "uvx",
"args": ["starwhisper-observation-calculator"],
"env": {}
}
}
}
```
#### 方法二:本地安装后使用
```json
{
"mcpServers": {
"starwhisper-observation": {
"command": "observability-mcp",
"args": [],
"env": {}
}
}
}
```
### 在AI助手中使用
安装并配置MCP服务后,你可以直接与AI助手对话:
```
用户: 请计算Vega在兴隆观测站的可观测性
AI助手: 我来为您计算Vega在兴隆观测站的可观测性...
[自动调用MCP工具: calculate_observability]
参数: latitude=40.393333, longitude=117.575278, target_name="Vega"
结果:
🌟 Vega 可观测性分析报告
📍 观测站: 40.393333°, 117.575278°, 900.0m
🌌 坐标: 18:36:56.3363, +38:47:01.280
📊 当前高度: 45.23°
✅ 可观测性: 可观测
🎯 约束条件: 高度✅ 月距✅
```
## 🌐 Web服务
### 启动Web服务
```bash
# 启动Web服务
observability-web
# 或指定端口
observability-web --port 8080
```
### API接口
- `GET /` - Web界面
- `GET /docs` - API文档
- `POST /observability` - 计算可观测性
- `POST /observability/batch` - 批量计算
- `GET /targets/supported` - 获取支持的目标
- `GET /observatories` - 获取预设观测站
### 使用示例
```bash
# 计算Vega可观测性
curl -X POST "http://localhost:8000/observability" \
-H "Content-Type: application/json" \
-d '{
"latitude": 40.393333,
"longitude": 117.575278,
"target_name": "Vega"
}'
```
## 📊 支持的目标
### 太阳系天体
- sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto
### 恒星
- Vega, Sirius, Polaris, Rigel, Betelgeuse, Altair, Deneb, Arcturus, Spica, Antares
### 深空天体
- M31, M42, M13, M57, M27, M51, M104, M87
## 📍 预设观测站
- **兴隆观测站**: 40.393333°, 117.575278°, 900m
- **新昌观测站**: 29.501784°, 120.905740°, 0m
- **帕洛马天文台**: 33.3563°, -116.8650°, 1712m
## 🔧 高级配置
### 自定义观测站
```python
from starwhisper_observation_calculator import ObservabilityCalculator
calculator = ObservabilityCalculator(
latitude=your_latitude,
longitude=your_longitude,
altitude=your_altitude,
timezone="Asia/Shanghai"
)
```
### 约束条件
```python
result = calculator.calculate_observability(
target_name="Vega",
min_altitude=20.0, # 最小地平高度
min_moon_separation=45.0, # 最小月距
time_range_hours=48 # 检查时间范围
)
```
## 🛠️ 开发
### 安装开发依赖
```bash
# 克隆项目
git clone https://github.com/wangcunshi/StarWhisper-observation-calculator.git
cd StarWhisper-observation-calculator
# 安装开发依赖
pip install -e .[dev]
# 或使用 uv
uv pip install -e .[dev]
```
### 运行测试
```bash
# 测试核心功能
python -c "from starwhisper_observation_calculator import ObservabilityCalculator; print('✅ 导入成功')"
# 测试MCP服务
observability-mcp
# 测试Web服务
observability-web
```
### 代码格式化
```bash
# 格式化代码
black src tests
isort src tests
# 类型检查
mypy src
```
## 📄 许可证
本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建 Pull Request
## 📞 支持
- 📧 邮箱: wangcunshi@nao.cas.cn
- 🐛 Issues: [GitHub Issues](https://github.com/wangcunshi/StarWhisper-observation-calculator/issues)
- 📖 文档: [GitHub README](https://github.com/wangcunshi/StarWhisper-observation-calculator#readme)
## 📝 更新日志
### v1.0.0
- 🎉 首次发布
- ✨ 支持恒星、深空天体和太阳系天体
- 🤖 MCP服务支持
- 🌐 Web API接口
- 📱 命令行工具
- 📊 高度曲线生成
- 🌙 月距约束检查
---
⭐ 如果这个项目对你有帮助,请给它一个 Star!
Raw data
{
"_id": null,
"home_page": null,
"name": "starwhisper-observability-calc",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Cunshi Wang <wangcunshi@nao.cas.cn>",
"keywords": "astronomy, observability, mcp, model-context-protocol, astropy, simbad, starwhisper, observatory, calculation, uvx, fastmcp",
"author": null,
"author_email": "Cunshi Wang <wangcunshi@nao.cas.cn>",
"download_url": "https://files.pythonhosted.org/packages/de/78/fc85966a03b307ff8b0c4fd4e594da90fb2214231f547e75f71a1624d001/starwhisper_observability_calc-1.0.3.tar.gz",
"platform": null,
"description": "# StarWhisper Observatory Calculator\r\n\r\n[](https://badge.fury.io/py/starwhisper-observation-calculator)\r\n[](https://pypi.org/project/starwhisper-observation-calculator/)\r\n[](https://opensource.org/licenses/MIT)\r\n\r\n\u4e00\u4e2a\u7528\u4e8e\u8ba1\u7b97\u5929\u6587\u76ee\u6807\u53ef\u89c2\u6d4b\u6027\u7684Python\u5305\uff0c\u652f\u6301\u6052\u661f\u3001\u6df1\u7a7a\u5929\u4f53\u548c\u592a\u9633\u7cfb\u5929\u4f53\u3002\u63d0\u4f9bMCP\uff08Model Context Protocol\uff09\u670d\u52a1\u63a5\u53e3\uff0c\u53ef\u4e0e\u652f\u6301MCP\u7684AI\u52a9\u624b\u96c6\u6210\u3002\r\n\r\n## \ud83c\udf1f \u4e3b\u8981\u7279\u6027\r\n\r\n- \ud83d\udd2d **\u591a\u76ee\u6807\u652f\u6301**: \u6052\u661f\u3001\u6df1\u7a7a\u5929\u4f53\u3001\u592a\u9633\u7cfb\u5929\u4f53\r\n- \ud83d\udccd **\u7075\u6d3b\u89c2\u6d4b\u7ad9**: \u652f\u6301\u81ea\u5b9a\u4e49\u89c2\u6d4b\u7ad9\u4f4d\u7f6e\r\n- \ud83c\udf19 **\u6708\u8ddd\u7ea6\u675f**: \u8003\u8651\u6708\u7403\u5e72\u6270\u7684\u53ef\u89c2\u6d4b\u6027\u5206\u6790\r\n- \ud83d\udcca **\u9ad8\u5ea6\u66f2\u7ebf**: \u751f\u621024\u5c0f\u65f6\u9ad8\u5ea6\u53d8\u5316\u66f2\u7ebf\r\n- \ud83c\udf10 **Web API**: \u63d0\u4f9bRESTful API\u63a5\u53e3\r\n- \ud83e\udd16 **MCP\u670d\u52a1**: \u6807\u51c6MCP\u534f\u8bae\uff0c\u652f\u6301AI\u52a9\u624b\u96c6\u6210\r\n- \ud83d\udcf1 **\u547d\u4ee4\u884c\u5de5\u5177**: \u7b80\u5355\u6613\u7528\u7684CLI\u754c\u9762\r\n\r\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u5b89\u88c5\r\n\r\n```bash\r\n# \u57fa\u672c\u5b89\u88c5\r\npip install starwhisper-observation-calculator\r\n\r\n# \u6216\u4f7f\u7528 uv\r\nuv pip install starwhisper-observation-calculator\r\n\r\n# \u5b89\u88c5Web\u670d\u52a1\u652f\u6301\r\npip install starwhisper-observation-calculator[web]\r\n\r\n# \u5b89\u88c5\u5b8c\u6574\u529f\u80fd\r\npip install starwhisper-observation-calculator[all]\r\n```\r\n\r\n### \u57fa\u672c\u4f7f\u7528\r\n\r\n```python\r\nfrom starwhisper_observation_calculator import ObservabilityCalculator\r\n\r\n# \u521b\u5efa\u8ba1\u7b97\u5668\uff08\u9ed8\u8ba4\u5174\u9686\u89c2\u6d4b\u7ad9\uff09\r\ncalculator = ObservabilityCalculator(\r\n latitude=40.393333,\r\n longitude=117.575278,\r\n altitude=900.0\r\n)\r\n\r\n# \u8ba1\u7b97Vega\u53ef\u89c2\u6d4b\u6027\r\nresult = calculator.calculate_observability(\"Vega\")\r\nprint(result)\r\n```\r\n\r\n### \u547d\u4ee4\u884c\u4f7f\u7528\r\n\r\n```bash\r\n# \u57fa\u672c\u4f7f\u7528\r\nobservability-calculator Vega\r\n\r\n# \u6307\u5b9a\u89c2\u6d4b\u7ad9\r\nobservability-calculator moon --latitude 40.393333 --longitude 117.575278\r\n\r\n# \u81ea\u5b9a\u4e49\u7ea6\u675f\u6761\u4ef6\r\nobservability-calculator M31 --min-altitude 20 --min-moon-separation 45\r\n```\r\n\r\n## \ud83e\udd16 MCP\u670d\u52a1\r\n\r\n\u672c\u5305\u63d0\u4f9b\u5b8c\u6574\u7684MCP\u670d\u52a1\uff0c\u53ef\u4e0e\u652f\u6301MCP\u7684AI\u52a9\u624b\uff08\u5982Claude Desktop\u3001Cursor\u7b49\uff09\u96c6\u6210\u3002\r\n\r\n### \u542f\u52a8MCP\u670d\u52a1\r\n\r\n#### \u65b9\u6cd5\u4e00\uff1a\u4f7f\u7528 uvx\uff08\u63a8\u8350\uff0c\u65e0\u9700\u5b89\u88c5\uff09\r\n\r\n```bash\r\n# \u76f4\u63a5\u8fd0\u884cMCP\u670d\u52a1\r\nuvx starwhisper-observation-calculator\r\n\r\n# \u8fd0\u884c\u8ba1\u7b97\u5668\r\nuvx starwhisper-observation-calculator --calculator Vega\r\n\r\n# \u542f\u52a8Web\u670d\u52a1\r\nuvx starwhisper-observation-calculator --web --port 8080\r\n```\r\n\r\n#### \u65b9\u6cd5\u4e8c\uff1a\u672c\u5730\u5b89\u88c5\u540e\u4f7f\u7528\r\n\r\n```bash\r\n# \u542f\u52a8MCP\u670d\u52a1\r\nobservability-mcp\r\n\r\n# \u6216\u76f4\u63a5\u4f7f\u7528python\u6a21\u5757\r\npython -m starwhisper_observation_calculator.mcp_server\r\n```\r\n\r\n### MCP\u914d\u7f6e\r\n\r\n#### \u65b9\u6cd5\u4e00\uff1a\u4f7f\u7528 uvx\uff08\u63a8\u8350\uff09\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"starwhisper-observation\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\"starwhisper-observation-calculator\"],\r\n \"env\": {}\r\n }\r\n }\r\n}\r\n```\r\n\r\n#### \u65b9\u6cd5\u4e8c\uff1a\u672c\u5730\u5b89\u88c5\u540e\u4f7f\u7528\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"starwhisper-observation\": {\r\n \"command\": \"observability-mcp\",\r\n \"args\": [],\r\n \"env\": {}\r\n }\r\n }\r\n}\r\n```\r\n\r\n### \u5728AI\u52a9\u624b\u4e2d\u4f7f\u7528\r\n\r\n\u5b89\u88c5\u5e76\u914d\u7f6eMCP\u670d\u52a1\u540e\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u4e0eAI\u52a9\u624b\u5bf9\u8bdd\uff1a\r\n\r\n```\r\n\u7528\u6237: \u8bf7\u8ba1\u7b97Vega\u5728\u5174\u9686\u89c2\u6d4b\u7ad9\u7684\u53ef\u89c2\u6d4b\u6027\r\nAI\u52a9\u624b: \u6211\u6765\u4e3a\u60a8\u8ba1\u7b97Vega\u5728\u5174\u9686\u89c2\u6d4b\u7ad9\u7684\u53ef\u89c2\u6d4b\u6027...\r\n\r\n[\u81ea\u52a8\u8c03\u7528MCP\u5de5\u5177: calculate_observability]\r\n\u53c2\u6570: latitude=40.393333, longitude=117.575278, target_name=\"Vega\"\r\n\r\n\u7ed3\u679c: \r\n\ud83c\udf1f Vega \u53ef\u89c2\u6d4b\u6027\u5206\u6790\u62a5\u544a\r\n\r\n\ud83d\udccd \u89c2\u6d4b\u7ad9: 40.393333\u00b0, 117.575278\u00b0, 900.0m\r\n\ud83c\udf0c \u5750\u6807: 18:36:56.3363, +38:47:01.280 \r\n\ud83d\udcca \u5f53\u524d\u9ad8\u5ea6: 45.23\u00b0\r\n\u2705 \u53ef\u89c2\u6d4b\u6027: \u53ef\u89c2\u6d4b\r\n\ud83c\udfaf \u7ea6\u675f\u6761\u4ef6: \u9ad8\u5ea6\u2705 \u6708\u8ddd\u2705\r\n```\r\n\r\n## \ud83c\udf10 Web\u670d\u52a1\r\n\r\n### \u542f\u52a8Web\u670d\u52a1\r\n\r\n```bash\r\n# \u542f\u52a8Web\u670d\u52a1\r\nobservability-web\r\n\r\n# \u6216\u6307\u5b9a\u7aef\u53e3\r\nobservability-web --port 8080\r\n```\r\n\r\n### API\u63a5\u53e3\r\n\r\n- `GET /` - Web\u754c\u9762\r\n- `GET /docs` - API\u6587\u6863\r\n- `POST /observability` - \u8ba1\u7b97\u53ef\u89c2\u6d4b\u6027\r\n- `POST /observability/batch` - \u6279\u91cf\u8ba1\u7b97\r\n- `GET /targets/supported` - \u83b7\u53d6\u652f\u6301\u7684\u76ee\u6807\r\n- `GET /observatories` - \u83b7\u53d6\u9884\u8bbe\u89c2\u6d4b\u7ad9\r\n\r\n### \u4f7f\u7528\u793a\u4f8b\r\n\r\n```bash\r\n# \u8ba1\u7b97Vega\u53ef\u89c2\u6d4b\u6027\r\ncurl -X POST \"http://localhost:8000/observability\" \\\r\n -H \"Content-Type: application/json\" \\\r\n -d '{\r\n \"latitude\": 40.393333,\r\n \"longitude\": 117.575278,\r\n \"target_name\": \"Vega\"\r\n }'\r\n```\r\n\r\n## \ud83d\udcca \u652f\u6301\u7684\u76ee\u6807\r\n\r\n### \u592a\u9633\u7cfb\u5929\u4f53\r\n- sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto\r\n\r\n### \u6052\u661f\r\n- Vega, Sirius, Polaris, Rigel, Betelgeuse, Altair, Deneb, Arcturus, Spica, Antares\r\n\r\n### \u6df1\u7a7a\u5929\u4f53\r\n- M31, M42, M13, M57, M27, M51, M104, M87\r\n\r\n## \ud83d\udccd \u9884\u8bbe\u89c2\u6d4b\u7ad9\r\n\r\n- **\u5174\u9686\u89c2\u6d4b\u7ad9**: 40.393333\u00b0, 117.575278\u00b0, 900m\r\n- **\u65b0\u660c\u89c2\u6d4b\u7ad9**: 29.501784\u00b0, 120.905740\u00b0, 0m\r\n- **\u5e15\u6d1b\u9a6c\u5929\u6587\u53f0**: 33.3563\u00b0, -116.8650\u00b0, 1712m\r\n\r\n## \ud83d\udd27 \u9ad8\u7ea7\u914d\u7f6e\r\n\r\n### \u81ea\u5b9a\u4e49\u89c2\u6d4b\u7ad9\r\n\r\n```python\r\nfrom starwhisper_observation_calculator import ObservabilityCalculator\r\n\r\ncalculator = ObservabilityCalculator(\r\n latitude=your_latitude,\r\n longitude=your_longitude,\r\n altitude=your_altitude,\r\n timezone=\"Asia/Shanghai\"\r\n)\r\n```\r\n\r\n### \u7ea6\u675f\u6761\u4ef6\r\n\r\n```python\r\nresult = calculator.calculate_observability(\r\n target_name=\"Vega\",\r\n min_altitude=20.0, # \u6700\u5c0f\u5730\u5e73\u9ad8\u5ea6\r\n min_moon_separation=45.0, # \u6700\u5c0f\u6708\u8ddd\r\n time_range_hours=48 # \u68c0\u67e5\u65f6\u95f4\u8303\u56f4\r\n)\r\n```\r\n\r\n## \ud83d\udee0\ufe0f \u5f00\u53d1\r\n\r\n### \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\r\n\r\n```bash\r\n# \u514b\u9686\u9879\u76ee\r\ngit clone https://github.com/wangcunshi/StarWhisper-observation-calculator.git\r\ncd StarWhisper-observation-calculator\r\n\r\n# \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\r\npip install -e .[dev]\r\n\r\n# \u6216\u4f7f\u7528 uv\r\nuv pip install -e .[dev]\r\n```\r\n\r\n### \u8fd0\u884c\u6d4b\u8bd5\r\n\r\n```bash\r\n# \u6d4b\u8bd5\u6838\u5fc3\u529f\u80fd\r\npython -c \"from starwhisper_observation_calculator import ObservabilityCalculator; print('\u2705 \u5bfc\u5165\u6210\u529f')\"\r\n\r\n# \u6d4b\u8bd5MCP\u670d\u52a1\r\nobservability-mcp\r\n\r\n# \u6d4b\u8bd5Web\u670d\u52a1\r\nobservability-web\r\n```\r\n\r\n### \u4ee3\u7801\u683c\u5f0f\u5316\r\n\r\n```bash\r\n# \u683c\u5f0f\u5316\u4ee3\u7801\r\nblack src tests\r\nisort src tests\r\n\r\n# \u7c7b\u578b\u68c0\u67e5\r\nmypy src\r\n```\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1\uff0c\u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\u3002\r\n\r\n## \ud83e\udd1d \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4 Issue \u548c Pull Request\uff01\r\n\r\n1. Fork \u9879\u76ee\r\n2. \u521b\u5efa\u529f\u80fd\u5206\u652f (`git checkout -b feature/amazing-feature`)\r\n3. \u63d0\u4ea4\u66f4\u6539 (`git commit -m 'Add amazing feature'`)\r\n4. \u63a8\u9001\u5230\u5206\u652f (`git push origin feature/amazing-feature`)\r\n5. \u521b\u5efa Pull Request\r\n\r\n## \ud83d\udcde \u652f\u6301\r\n\r\n- \ud83d\udce7 \u90ae\u7bb1: wangcunshi@nao.cas.cn\r\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/wangcunshi/StarWhisper-observation-calculator/issues)\r\n- \ud83d\udcd6 \u6587\u6863: [GitHub README](https://github.com/wangcunshi/StarWhisper-observation-calculator#readme)\r\n\r\n## \ud83d\udcdd \u66f4\u65b0\u65e5\u5fd7\r\n\r\n### v1.0.0\r\n- \ud83c\udf89 \u9996\u6b21\u53d1\u5e03\r\n- \u2728 \u652f\u6301\u6052\u661f\u3001\u6df1\u7a7a\u5929\u4f53\u548c\u592a\u9633\u7cfb\u5929\u4f53\r\n- \ud83e\udd16 MCP\u670d\u52a1\u652f\u6301\r\n- \ud83c\udf10 Web API\u63a5\u53e3\r\n- \ud83d\udcf1 \u547d\u4ee4\u884c\u5de5\u5177\r\n- \ud83d\udcca \u9ad8\u5ea6\u66f2\u7ebf\u751f\u6210\r\n- \ud83c\udf19 \u6708\u8ddd\u7ea6\u675f\u68c0\u67e5\r\n\r\n---\r\n\r\n\u2b50 \u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u4f60\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u5b83\u4e00\u4e2a Star\uff01 \r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u5929\u6587\u53ef\u89c2\u6d4b\u6027\u8ba1\u7b97\u5668 - \u652f\u6301\u6052\u661f\u3001\u6df1\u7a7a\u5929\u4f53\u548c\u592a\u9633\u7cfb\u5929\u4f53\u7684\u53ef\u89c2\u6d4b\u6027\u8ba1\u7b97\uff0c\u63d0\u4f9bMCP\u548cWeb\u670d\u52a1",
"version": "1.0.3",
"project_urls": {
"Changelog": "https://github.com/wangcunshi/StarWhisper-observation-calculator/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/wangcunshi/StarWhisper-observation-calculator#readme",
"Download": "https://pypi.org/project/starwhisper-observability-calc/",
"Homepage": "https://github.com/wangcunshi/StarWhisper-observation-calculator",
"Issues": "https://github.com/wangcunshi/StarWhisper-observation-calculator/issues",
"Repository": "https://github.com/wangcunshi/StarWhisper-observation-calculator"
},
"split_keywords": [
"astronomy",
" observability",
" mcp",
" model-context-protocol",
" astropy",
" simbad",
" starwhisper",
" observatory",
" calculation",
" uvx",
" fastmcp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f9ba57a3365bddb18cd973a0d4d21cdf1654aaf99a2cedfed0d7f0b7734b7a88",
"md5": "98614c77afe59b76b5a4e3499026ec6d",
"sha256": "88df5afb94a397cef3ab645847eccbe7f73153f313855f398f94f6781fb58000"
},
"downloads": -1,
"filename": "starwhisper_observability_calc-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "98614c77afe59b76b5a4e3499026ec6d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20772,
"upload_time": "2025-07-10T00:14:48",
"upload_time_iso_8601": "2025-07-10T00:14:48.526599Z",
"url": "https://files.pythonhosted.org/packages/f9/ba/57a3365bddb18cd973a0d4d21cdf1654aaf99a2cedfed0d7f0b7734b7a88/starwhisper_observability_calc-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "de78fc85966a03b307ff8b0c4fd4e594da90fb2214231f547e75f71a1624d001",
"md5": "695cafdda16d7f2fac5cafc54bbe7b6f",
"sha256": "73f93442a0f9817e2049bf39f5ce61ada3be59fb1b53df155ff8bdd21d433dd6"
},
"downloads": -1,
"filename": "starwhisper_observability_calc-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "695cafdda16d7f2fac5cafc54bbe7b6f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1043121,
"upload_time": "2025-07-10T00:14:51",
"upload_time_iso_8601": "2025-07-10T00:14:51.216362Z",
"url": "https://files.pythonhosted.org/packages/de/78/fc85966a03b307ff8b0c4fd4e594da90fb2214231f547e75f71a1624d001/starwhisper_observability_calc-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-10 00:14:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wangcunshi",
"github_project": "StarWhisper-observation-calculator",
"github_not_found": true,
"lcname": "starwhisper-observability-calc"
}