cursorrules

Development rules for an MCP text-to-speech server that uses macOS’s built-in say command. The server works only on macOS and offers speech, audio-file, voice-listing, and system-information tools.

In plain words
What is it for?
Developing and manually testing the server’s speech and audio-generation tools with different voices, rates, and inputs.
Why use it?
It defines how to test speech output, generated audio, error cases, documentation, and macOS compatibility after changes.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/viktor-silakov/mac-say-mcp/cursorrules
Clone the repo
git clone --depth 1 https://github.com/viktor-silakov/mac-say-mcp

Made for: Cursor.

Per session 1,247 This file is loaded in full into every session.
When invoked 1,247 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01247 $0.01247
Opus 5 $0.00624 $0.00624
Sonnet 5 $0.00249 $0.00249
Haiku 4.5 $0.00125 $0.00125

Measured 2d ago against content hash ebc54afafc87, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

cursorrules scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursorrules · 144 lines

How it starts

The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Cursor IDE Rules for mac-say-mcp Development

Project Context

This is a Model Context Protocol (MCP) server for text-to-speech using macOS say command. It provides TTS capabilities through MCP tools for various clients (Claude, VS Code, etc.). macOS ONLY - requires the say command.

Development Workflow Rules

🧪 Testing Requirements

  • ALWAYS test manually after ANY code change with real MCP clients
  • Test ALL TTS tools (speak, save_audio, list_voices, voice_demo, system_info)
  • Test with different voices, rates, and text inputs
  • Test audio file generation and verify file creation
  • Test error cases (invalid voices, long text, special characters)
  • Clean up generated audio files after testing

📝 Documentation Requirements

  • Update README.md for every significant change
  • Document new MCP tools with proper JSON schema and examples
  • Document macOS compatibility requirements
  • Include tool usage examples in JSON format
  • Update voice support information when applicable
  • All documentation and comments must be in English

🔧 Code Quality Rules

  • Follow ES6+ module syntax (import/export)
  • Handle error cases gracefully with proper error messages
  • Use meaningful variable and function names
  • Add JSDoc comments for complex functions
  • Validate MCP tool parameters before processing
  • Ensure consistent async/await patterns
  • All code comments must be in English

📁 File Organization

  • Main server code in index.js (entry point)
  • Audio files generated in audio/ directory
  • Documentation in README.md and AI_MANUAL_TESTING_AGENT.md
  • Keep structure simple - single file architecture for now
  • Audio directory auto-created if missing

🚀 Enhancement Process

  1. Identify TTS requirement clearly in documentation
  2. Test with say command manually first
  3. Implement MCP tool with proper schema validation
  4. Test with MCP client (Claude Desktop, VS Code MCP)
  5. Update README.md with tool examples
  6. Test edge cases (long text, special chars, invalid params)

Read the full file on GitHub · 144 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 144 lines · 1,247 tokens per session scan A ebc54afafc87

Subscribe to this mod's changes

cursorrules is a cursor rule published in the GitHub repository viktor-silakov/mac-say-mcp (1 stars, last pushed 1y ago), licensed MIT. It adds 1,247 tokens to every session, about $0.0062 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.