# MCP Server for ASCOM
[](https://modelcontextprotocol.io)
[](https://www.python.org/downloads/)
[](https://pypi.org/project/mcp-server-ascom/)
[](https://github.com/stellarpunk/mcp-server-ascom/actions)
[](LICENSE)
Control telescopes with AI. Works with any ASCOM device.
## Documentation
- [Quick Start Guide](QUICKSTART.md)
- [API Reference](docs/API.md)
- [Development Guide](docs/development.md)
- [Testing Strategy](docs/E2E_TESTING_GUIDE.md)
- [Examples](examples/README.md)
## v0.3.0 Updates
- FastMCP 2.0 - Half the code
- JSON logging - OpenTelemetry ready
- Better errors - Protocol compliance built-in
## Features
- Works with any ASCOM telescope, camera, or focuser
- Natural language control: "Point at the Orion Nebula"
- Auto-discovers devices on your network
- Async architecture - never blocks
- Full test coverage and type safety
## Installation
```bash
# Quick start
pip install mcp-server-ascom
# Or use uvx (no install)
uvx mcp-server-ascom
```
## Claude Desktop Setup
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"ascom": {
"command": "uvx",
"args": ["mcp-server-ascom"]
}
}
}
```
Restart Claude Desktop to activate.
## Usage
```
You: Connect to my telescope
AI: Found Seestar S50. Connected.
You: Point at the Orion Nebula
AI: Slewing to M42... Done.
```
## Supported Equipment
Any ASCOM Alpaca device: telescopes, cameras, focusers, filter wheels, domes.
## Available Tools
- `discover_ascom_devices` - Find devices on network
- `telescope_connect` / `camera_connect` - Connect to device
- `telescope_goto` / `telescope_goto_object` - Point telescope
- `telescope_park` - Park at home position
- `camera_capture` - Take images
## Development
```bash
git clone https://github.com/stellarpunk/mcp-server-ascom.git
cd mcp-server-ascom
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
```
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
## Security
Local connections only by default. For remote access, enable OAuth in `.env`.
## Troubleshooting
**No devices found?**
- Check device is powered on and on same network
- Allow UDP port 32227 through firewall
- Test with: `curl http://device-ip:11111/api/v1/description`
**Import errors?** The `alpyca` package imports as `alpaca`.
See [troubleshooting.md](docs/troubleshooting.md) for more.
## Documentation
- [Getting Started](docs/GETTING_STARTED.md) - Quick setup guide
- [API Reference](docs/API.md) - Tool documentation
- [Architecture](docs/ARCHITECTURE.md) - System design
- [Seestar Integration](docs/seestar_integration.md) - Seestar S50 guide
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-server-ascom",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "mcp, ascom, astronomy, telescope, alpaca, stellarpunk",
"author": "Stellarpunk Collective",
"author_email": null,
"download_url": null,
"platform": null,
"description": "# MCP Server for ASCOM\n\n[](https://modelcontextprotocol.io)\n[](https://www.python.org/downloads/)\n[](https://pypi.org/project/mcp-server-ascom/)\n[](https://github.com/stellarpunk/mcp-server-ascom/actions)\n[](LICENSE)\n\nControl telescopes with AI. Works with any ASCOM device.\n\n## Documentation\n\n- [Quick Start Guide](QUICKSTART.md)\n- [API Reference](docs/API.md)\n- [Development Guide](docs/development.md)\n- [Testing Strategy](docs/E2E_TESTING_GUIDE.md)\n- [Examples](examples/README.md)\n\n## v0.3.0 Updates\n\n- FastMCP 2.0 - Half the code\n- JSON logging - OpenTelemetry ready\n- Better errors - Protocol compliance built-in\n\n## Features\n\n- Works with any ASCOM telescope, camera, or focuser\n- Natural language control: \"Point at the Orion Nebula\"\n- Auto-discovers devices on your network\n- Async architecture - never blocks\n- Full test coverage and type safety\n\n## Installation\n\n```bash\n# Quick start\npip install mcp-server-ascom\n\n# Or use uvx (no install)\nuvx mcp-server-ascom\n```\n\n## Claude Desktop Setup\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n```json\n{\n \"mcpServers\": {\n \"ascom\": {\n \"command\": \"uvx\",\n \"args\": [\"mcp-server-ascom\"]\n }\n }\n}\n```\n\nRestart Claude Desktop to activate.\n\n## Usage\n\n```\nYou: Connect to my telescope\nAI: Found Seestar S50. Connected.\n\nYou: Point at the Orion Nebula\nAI: Slewing to M42... Done.\n```\n\n## Supported Equipment\n\nAny ASCOM Alpaca device: telescopes, cameras, focusers, filter wheels, domes.\n\n## Available Tools\n\n- `discover_ascom_devices` - Find devices on network\n- `telescope_connect` / `camera_connect` - Connect to device\n- `telescope_goto` / `telescope_goto_object` - Point telescope\n- `telescope_park` - Park at home position\n- `camera_capture` - Take images\n\n## Development\n\n```bash\ngit clone https://github.com/stellarpunk/mcp-server-ascom.git\ncd mcp-server-ascom\nuv venv && source .venv/bin/activate\nuv pip install -e \".[dev]\"\npytest\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## Security\n\nLocal connections only by default. For remote access, enable OAuth in `.env`.\n\n## Troubleshooting\n\n**No devices found?**\n- Check device is powered on and on same network\n- Allow UDP port 32227 through firewall\n- Test with: `curl http://device-ip:11111/api/v1/description`\n\n**Import errors?** The `alpyca` package imports as `alpaca`.\n\nSee [troubleshooting.md](docs/troubleshooting.md) for more.\n\n## Documentation\n\n- [Getting Started](docs/GETTING_STARTED.md) - Quick setup guide\n- [API Reference](docs/API.md) - Tool documentation\n- [Architecture](docs/ARCHITECTURE.md) - System design\n- [Seestar Integration](docs/seestar_integration.md) - Seestar S50 guide\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": null,
"summary": "MCP server for ASCOM astronomy equipment control",
"version": "0.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/stellarpunk/mcp-server-ascom/issues",
"Homepage": "https://github.com/stellarpunk/mcp-server-ascom",
"Organization": "https://github.com/stellarpunk",
"Repository": "https://github.com/stellarpunk/mcp-server-ascom"
},
"split_keywords": [
"mcp",
" ascom",
" astronomy",
" telescope",
" alpaca",
" stellarpunk"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "17c2c5c841546230a327a02e0ba320783e0d82573a419ea2cdc59466f636c7a2",
"md5": "89e73fa034ee6ce8e21854fefa124692",
"sha256": "fb8f46b309f270a77d76ec254025526478c8df7fd190b762ae943629fb61d378"
},
"downloads": -1,
"filename": "mcp_server_ascom-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "89e73fa034ee6ce8e21854fefa124692",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 23794,
"upload_time": "2025-08-01T00:44:26",
"upload_time_iso_8601": "2025-08-01T00:44:26.179700Z",
"url": "https://files.pythonhosted.org/packages/17/c2/c5c841546230a327a02e0ba320783e0d82573a419ea2cdc59466f636c7a2/mcp_server_ascom-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-01 00:44:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "stellarpunk",
"github_project": "mcp-server-ascom",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mcp-server-ascom"
}