spectr-mcp
MCP server that exposes Spectr's spec-generation pipeline as a tool any MCP client can call. Hand it an App Store URL or a local MP4 of an app, get back a production-ready spec.md precise enough to build a clone from.
See an app. Ship an app.
What it does
One tool, generate_spec(source, ...):
source— an App Store URL (e.g.https://apps.apple.com/us/app/doordash/id719972451) or an absolute path to a local MP4 screen recording.- Returns a structured 7-section markdown spec covering app overview, navigation, screens, components, design system (with exact hex/px/weight values), implementation notes, and a Claude Code prompt the developer can paste.
- Targets Expo SDK 54 / React Native / iPhone 15 baseline.
Typical run: 2–5 min for App Store URLs, 5–10 min for MP4 recordings.
Two ways to install
Hosted (recommended) — Claude web app connector
Open Claude → Settings → Connectors → Add a custom connector → paste:
https://mcp.spectr.to
No key, no install, no env vars. The hosted MCP runs on Spectr's Anthropic key; you just paste the URL and start asking Claude to generate specs.
Local (developer install) — stdio via Claude Code
If you have Claude Code installed and logged in (claude login), you can also run the MCP locally as a stdio subprocess. Uses your existing Claude Pro/Max subscription — no API key needed.
Claude Code
claude mcp add spectr -- uvx spectr-mcp
Or for local development against this repo:
claude mcp add spectr -- uvx --from /path/to/spectr spectr-mcp
Other clients (Cursor, Codex, custom MCP hosts)
Any client that supports MCP stdio servers can launch the local version:
uvx spectr-mcp
If you don't have the claude CLI installed and authenticated, the MCP needs an ANTHROPIC_API_KEY instead — set it in the launching process's environment.
Or use the hosted version at https://mcp.spectr.to if your client supports remote MCP connectors over HTTP.
Self-hosting the HTTP server
The same package runs the streamable-http transport for hosted deployments:
spectr-mcp --http --port 8000
# Or with env var
SPECTR_MCP_HTTP=1 PORT=8000 spectr-mcp
Set ANTHROPIC_API_KEY in the process env. See ../mcp_server/README.md for the Dockerfile + Railway deployment recipe used to host mcp.spectr.to.
Requirements
- Python ≥ 3.10 (installed automatically by
uvx). - One of:
- The
claudeCLI (free path — uses your existing Claude Pro / Max subscription). Install from claude.com/product/claude-code, runclaude loginonce, you're done. ANTHROPIC_API_KEYin env (token-billed path — set it when you want to pay Anthropic directly by token).
- The
ffmpeg— only required when passing an MP4 path; not needed for App Store URLs.
The MCP auto-selects: API key wins if both are present (faster than CLI subprocess).
Usage from inside Claude Code
> Generate a spec from https://apps.apple.com/us/app/doordash/id719972451 and write it to ./doordash-spec.md
Claude Code will pick the tool, call it, and write the file. The tool returns a short confirmation summary so your context window stays small.
For MP4 input:
> Generate a spec from /Users/me/Desktop/recording.mp4 for the app "Linear"
The reference_app parameter is required for MP4 input (the tool has no way to detect the app name otherwise).
Cost
With Claude Code subscription (CLI path): specs are billed against your Claude Pro / Max plan's normal usage allowance. No per-spec charge from Spectr or Anthropic beyond your existing subscription.
With ANTHROPIC_API_KEY (SDK path): you pay Anthropic by token. Rough numbers per spec at the default max_frames=20:
- Vision (20 frames × 2 passes via Haiku): ~$0.10–0.20
- Spec generation (7 sections via Sonnet, with prompt caching): ~$0.50–1.00
- Total: typically $0.60–1.20 per spec
Raising max_frames past 20 increases vision cost roughly linearly. max_frames=48 (the old default) runs about $1.40–2.00 per spec.
The hosted version at spectr.to (coming back soon) charges $19 per spec and includes the pipeline, hosting, storage, retries, and the realtime progress UI.
License
MIT
Metadata
Release files for spectr-mcp 0.2.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 |
|---|---|---|---|---|
| spectr_mcp-0.2.0.tar.gz | 57.3 kB | Without provenance | Details for spectr_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| spectr_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for spectr_mcp-0.2.0-py3-none-any.whl |
Total release size: 122.8 kB
Release files / spectr_mcp-0.2.0.tar.gz
| Download URL | spectr_mcp-0.2.0.tar.gz |
|---|---|
| Size | 57.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fbc961dcb77548b22f5232f53f03db5b7e0604265bec931e11ef17f7a9e518f8
|
|
BLAKE2b-256 checksum How to use checksums |
6a6aa4ae45bd6cbae0f4a7024c5ec944cca36e3b50274b5d4b239f0907ebfca1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / spectr_mcp-0.2.0-py3-none-any.whl
| Download URL | spectr_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 65.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40c84f044c5c42567590c8391388d805658157c59306bed450b337858b60c31a
|
|
BLAKE2b-256 checksum How to use checksums |
77077751b7eb32f9983cd5b70c07ceee41f6579a42aa1306b75f8abf1b49e6a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for spectr-mcp 0.2.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.