vader-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vader-mcpFrom now on, answer me in Darth Vader's voice whenever Star Wars comes up."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vader-mcp
A local stdio MCP server, written in TypeScript, that makes Claude answer as Darth Vader whenever you mention Star Wars.
How the trigger actually works
An MCP server cannot intercept your messages — it exposes tools, and the model decides when to call them. So the persona fires from two things working together:
Server instructions. On connect, the server sends an
instructionsblock that Claude Code injects into its system prompt. It tells Claude to callsense_disturbanceon any message that might mention Star Wars, and to stay in voice whileengageis true.The
sense_disturbancetool. Deterministic keyword matching over ~120 Star Wars terms, returning the matched keywords, an intensity level, and the persona directive.
This is best-effort by design — the model chooses to call the tool. If you want
it guaranteed, use the vader_mode prompt (/vader_mode) to pin the persona on
for the whole conversation.
Related MCP server: muse-tts-embed
Tools
Tool | Purpose |
| Scan text for Star Wars keywords. Returns |
| Restyle a message in Vader's register — no contractions, formal phrasing, framed by an opening and closing line. Takes |
| Return a canonical Vader line, optionally by topic ( |
Prompt
vader_mode — force the persona on for the rest of the conversation.
Install
npm install # `prepare` builds dist/ automaticallyRegister with Claude Code (user scope, available in every project):
claude mcp add vader --scope user -- node /Users/gabrielestes/vader_mcp/dist/index.jsRemove it with claude mcp remove vader --scope user.
The registered server runs compiled JavaScript from
dist/, so it has no dependency on experimental Node features. Re-runnpm run buildafter editingsrc/or the running server keeps serving the old build.
Scripts
Command | What it does |
|
|
| Typechecks |
| Unit tests for the voice engine, run straight from |
| Builds, then drives every tool over real JSON-RPC against |
| Runs the server straight from |
npm test and npm run dev rely on Node's native type stripping (Node ≥ 22.18),
which prints an experimental warning. The build path does not.
TypeScript setup
tsconfig.json— strict base config,noEmit, coverssrc/test/scripts.tsconfig.build.json— extends it, emitssrc/todist/.
Relative imports are written with .ts extensions so Node can run the sources
directly; rewriteRelativeImportExtensions turns them into .js on build.
erasableSyntaxOnly keeps the source compatible with type stripping, so the
same files run both ways.
Strictness beyond strict: noUncheckedIndexedAccess,
exactOptionalPropertyTypes, noImplicitOverride, noUnusedLocals,
noUnusedParameters, verbatimModuleSyntax.
Layout
src/vader.ts— keyword detection, quotes, and text styling. Pure functions, no I/O.src/index.ts— MCP wiring: tool registration and stdio transport.test/vader.test.ts— unit tests for the voice engine.scripts/probe.ts— spawns the built server and exercises every tool over real JSON-RPC.
Available Tools
3 toolssense_disturbanceSense a disturbance in the ForceA
Scan text for Star Wars keywords. Call this on the user's message whenever Star Wars might have come up. If it returns engage: true, respond in Darth Vader's voice.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to scan — usually the user's message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the tool scans for keywords, returns an 'engage' flag, and that a true result should trigger a Darth Vader voice response. For a simple read-only detection tool, this is adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: the action, the trigger, and the conditional response. There is no filler, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter detection tool with no output schema, the description covers the trigger condition, the return flag behavior, and the expected follow-up action. It could mention what happens when 'engage' is false, but that is reasonably implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the 'text' parameter as 'The text to scan — usually the user's message.' The tool description adds little beyond that, so the schema carries the parameter meaning; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Scan text for Star Wars keywords.' This clearly distinguishes it from sibling tools like vader_speak and vader_quote, which are about speaking or quoting rather than detecting Star Wars content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to call the tool: 'Call this on the user's message whenever Star Wars might have come up.' It does not spell out when not to use it or name alternatives, but the trigger condition is specific enough for an agent to apply correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vader_quoteSummon a canonical Vader quoteA
Return a real Darth Vader line. Optional topic, one of: father, faith, power, destiny, failure, deal, teacher, circle, impressive, escape, join, breathing.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional topic hint, e.g. 'power', 'father', 'failure'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that the tool returns a real Vader line and that the topic parameter is optional and constrained to a listed set. It does not mention edge behavior for invalid topics, but that is a minor gap for such a simple read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core behavior and then provides the parameter constraints. Every phrase earns its place, with no redundant or tangential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is largely complete: it states the return type, the input options, and the optional nature of the parameter. Missing sibling differentiation and invalid-input behavior are minor for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the topic parameter, and the description adds meaningful value by enumerating the exact allowed values ('father, faith, power, destiny, failure, deal, teacher, circle, impressive, escape, join, breathing') and clarifying that the parameter is optional. This goes beyond the schema's generic example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return') and resource ('a real Darth Vader line'), and the title adds 'canonical' to reinforce scope. It is specific enough to understand what the tool does, though it does not explicitly distinguish itself from the sibling vader_speak.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the siblings sense_disturbance or vader_speak. There are no exclusions, alternatives, or contextual conditions, so an agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vader_speakSpeak as VaderA
Restyle a message in Darth Vader's voice — formal register, no contractions, framed by an opening and closing line. Pass the plain version of what you want to say and use the result verbatim.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The plain-English message to restyle. | |
| intensity | No | How heavily to lean on the persona. | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses meaningful transformation traits: formal register, no contractions, opening/closing framing, and verbatim usage. This gives the agent a clear model of what will happen to the input, which is strong for a simple text-restyling tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The core purpose and style constraints are front-loaded, and the usage instruction ('use the result verbatim') earns its place. Every sentence contributes actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with only two parameters and full schema coverage, the description is largely complete. It explains the transformation style and the expected usage pattern. It lacks explicit sibling differentiation, but nothing critical is missing for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description adds some context by calling the input the 'plain version' of what to say, but it does not meaningfully elaborate on the intensity parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Restyle a message') and the specific resource/voice ('Darth Vader's voice'), with concrete style details. It does not explicitly contrast with the siblings vader_quote or sense_disturbance, but the restyle intent is distinct enough for an agent to understand the tool's role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the user has a plain message that should be turned into Vader-style speech. It also tells the agent to pass the plain version and use the result verbatim. However, it provides no explicit guidance about when not to use it or how it differs from sibling tools like vader_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- First observed
sense_disturbance - First observed
vader_quote - First observed
vader_speak
TDQS
Each tool has a clear, non-overlapping role: one detects whether Vader mode should activate, one restyles an arbitrary message, and one returns a canned quote. There is little chance an agent would confuse them.
The names are readable and all snake_case, but they follow different patterns: sense_disturbance is verb_noun, vader_speak is noun_verb, and vader_quote is noun_noun. Two share a vader_ prefix while the third does not, making the convention inconsistent.
Three tools is appropriate for a narrow Vader roleplay server. Each tool earns its place and there is no bloat or redundancy.
The server covers the full intended workflow: detect when Vader's voice should engage, restyle a message into that voice, and provide authentic quotes. No obvious gaps or dead ends exist for the stated domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover — 55 tools.
Give Claude only the Google Drive files you choose. Every action logged.
- mcpOAuthio.styleforge
Brand-aware creative studio for Claude: 200+ tools for on-brand ads, video, email and campaigns.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables Claude to speak responses out loud using ElevenLabs text-to-speech API, with tools to list voices and convert text to speech.2-
- FlicenseNot gradedqualityDmaintenanceEnables Claude to speak text with an embedded audio player, supporting 54 voices, voice cloning, and playback controls, all running locally.2-
- AlicenseNot gradedqualityBmaintenanceEnables Claude to generate, rewrite, de-AI, and transform text into a specific human voice, primarily the operator's own, using stylometric and AI-detector gates.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables Claude to act as a personal assistant in Telegram by providing tools to read new messages, send replies, and manage tasks/reminders/notes in a Supabase-backed memory.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabrielestes/vader_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server