MCP TTS Copilot Summary
Python MCP server for Windows text-to-speech that reads existing Copilot summaries using SAPI voice fallback.
Behavior Summary
- Exposes two MCP tools:
speak_textspeak_existing_summary
- Consumes already-prepared summary text (no extra summarization pipeline).
- Trigger strategy is MCP-only and instruction-driven.
- Voice fallback policy:
- Use Zira if available.
- Else use first available SAPI voice.
- If no SAPI voice is available, return non-fatal
skippedwith warning.
- Speech call behavior is non-blocking by default (
MCP_TTS_SUMMARY_ASYNC_SPEECH=true), so Copilot can continue responding immediately.
Install
pip
python -m pip install -e .
uv
uv pip install -e .
Run
python -m mcp_tts_copilot_summary.main
Uses stdio transport.
Configuration
Environment variables:
MCP_TTS_SUMMARY_ENABLED(default:true)MCP_TTS_SUMMARY_MIN_PARAGRAPHS(default:4)MCP_TTS_SUMMARY_MIN_NEW_CODE_LINES(default:100)MCP_TTS_SUMMARY_RATE(default:0)MCP_TTS_SUMMARY_VOLUME(default:100)MCP_TTS_SUMMARY_ASYNC_SPEECH(default:true)
Guard criteria used by tools:
- Speak only when
paragraph_count > 4ORnew_code_lines > 100. - If metadata is not provided, tools proceed unless disabled.
VS Code MCP Registration (Example)
See examples/mcp.json for a complete sample.
If mcp-tts-copilot-summary is not on PATH, prefer launching with python -m mcp_tts_copilot_summary.main.
For this workspace on Windows, use:
{
"mcpServers": {
"tts-copilot-summary": {
"command": "python",
"args": ["-m", "mcp_tts_copilot_summary.main"],
"env": {
"MCP_TTS_SUMMARY_ENABLED": "true",
"MCP_TTS_SUMMARY_MIN_PARAGRAPHS": "4",
"MCP_TTS_SUMMARY_MIN_NEW_CODE_LINES": "100",
"MCP_TTS_SUMMARY_RATE": "0",
"MCP_TTS_SUMMARY_VOLUME": "100"
}
}
}
}
This same config is also available at:
examples/mcp.json.vscode/mcp.json
Agent Instruction Snippet
Use this policy in your agent instructions:
Call `speak_existing_summary` (or `speak_text`) only when:
- response has more than 4 paragraphs, OR
- response introduces more than 100 new code lines.
Pass existing summary text directly as `summary_text`.
Do not generate a second summary for TTS.
Also see examples/agent-instruction.md.
Verification
python -m pip install -e .
pytest -q
Publish to PyPI
This package is ready for both pip and uv once published on PyPI.
- Create a GitHub repository and push this project.
- In GitHub repository settings, configure trusted publishing for PyPI.
- The workflow at
.github/workflows/publish.ymlbuilds and attempts publish automatically on every push tomain(including merges), on release publish, and on manual dispatch. - For an actual new upload to PyPI, bump
versioninpyproject.tomlbefore pushing. If the version already exists, publish is safely skipped.
After publication, installation works globally with either tool:
python -m pip install mcp-tts-copilot-summary
uv pip install mcp-tts-copilot-summary
Manual checks:
- Start MCP server and run
tools/list. - Confirm
speak_textandspeak_existing_summaryare listed. - Invoke either tool with sample summary text.
- Confirm Zira is used when available, otherwise first SAPI voice, otherwise
skippedwarning.
Copy-Ready Smoke Calls
Expected to speak:
{
"summary_text": "This is a test summary for speech output.",
"paragraph_count": 5,
"new_code_lines": 0
}
Expected to skip (threshold not met):
{
"summary_text": "Short summary.",
"paragraph_count": 2,
"new_code_lines": 10
}
Metadata
Release files for mcp-tts-copilot-summary 0.1.1
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 | |
|---|---|---|---|---|
| mcp_tts_copilot_summary-0.1.1.tar.gz | 6.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_tts_copilot_summary-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.7 kB
Release files / mcp_tts_copilot_summary-0.1.1.tar.gz
| Download URL | mcp_tts_copilot_summary-0.1.1.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ce9c09acfbfb7b18ff86c293669a8012ec37b02a84d01bcf8f4da0a0bfdbcc4
|
|
BLAKE2b-256 checksum How to use checksums |
9c4767e5efd1bf4b90f4d86305a8aabbf39c00181ea8c3905c66b022184b58d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.
Transparency logRelease files / mcp_tts_copilot_summary-0.1.1-py3-none-any.whl
| Download URL | mcp_tts_copilot_summary-0.1.1-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
136ea2073ec97fa7cdfba4fc67baaecca1bb72b1fd2709d84dc99af61e258c84
|
|
BLAKE2b-256 checksum How to use checksums |
898d756c615f6f0188cdd5ee33456a1ec17be10e00b8bf159088fae858cdf3c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.
Transparency logSecurity for mcp-tts-copilot-summary 0.1.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for mcp_tts_copilot_summary-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.
Transparency logA 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.