One rewrite tool
rewrite_email accepts a draft reply and returns the final rewritten text when the job succeeds.
Connect your LLM host to a stable rewrite tool that turns rough drafts into natural, concise replies with meaning and facts intact. Use local stdio with npx @replyinmyvoiceashuman/mcp-server, or use remote HTTP with a Bearer key.
rewrite_email accepts a draft reply and returns the final rewritten text when the job succeeds.
get_rewrite_result checks an existing attempt if a remote call is still working when the host reaches its time budget.
Website rewrites and MCP rewrites draw from the same paid balance, so account owners manage keys and credits in one place.
Open API keys, create a key, and copy the plaintext value once.
Local runs npx @replyinmyvoiceashuman/mcp-server through stdio. Remote connects to https://replyinmyvoice.com/api/mcp and sends Authorization: Bearer rmv_live_xxx.
In the host, call rewrite_email with your rough draft reply.
npx @replyinmyvoiceashuman/mcp-serverhttps://replyinmyvoice.com/api/mcp
Authorization: Bearer rmv_live_xxxUse the local command when you want the host to launch the server on your machine. Use the remote URL when your workspace supports HTTP MCP.
claude mcp add replyinmyvoice \
--env REPLY_IN_MY_VOICE_API_KEY=rmv_live_xxx \
-- npx -y @replyinmyvoiceashuman/mcp-serverclaude mcp add replyinmyvoice \
--transport http \
--url https://replyinmyvoice.com/api/mcp \
--header "Authorization: Bearer rmv_live_xxx"Add one of these entries to your Codex MCP config. The local version reads the key from env; the remote version sends the Bearer header.
[mcp_servers.replyinmyvoice]
command = "npx"
args = ["-y", "@replyinmyvoiceashuman/mcp-server"]
env = { REPLY_IN_MY_VOICE_API_KEY = "rmv_live_xxx" }[mcp_servers.replyinmyvoice]
url = "https://replyinmyvoice.com/api/mcp"
headers = { Authorization = "Bearer rmv_live_xxx" }Put the block inside the app's MCP server config, then fully restart the desktop app so it reloads the server list.
{
"mcpServers": {
"replyinmyvoice": {
"command": "npx",
"args": ["-y", "@replyinmyvoiceashuman/mcp-server"],
"env": { "REPLY_IN_MY_VOICE_API_KEY": "rmv_live_xxx" }
}
}
}{
"mcpServers": {
"replyinmyvoice": {
"url": "https://replyinmyvoice.com/api/mcp",
"headers": { "Authorization": "Bearer rmv_live_xxx" }
}
}
}Use Settings -> MCP or edit the MCP JSON file directly. The same tool names are available over local stdio and remote HTTP.
{
"mcpServers": {
"replyinmyvoice": {
"command": "npx",
"args": ["-y", "@replyinmyvoiceashuman/mcp-server"],
"env": { "REPLY_IN_MY_VOICE_API_KEY": "rmv_live_xxx" }
}
}
}{
"mcpServers": {
"replyinmyvoice": {
"url": "https://replyinmyvoice.com/api/mcp",
"headers": { "Authorization": "Bearer rmv_live_xxx" }
}
}
}get_rewrite_result does not use another credit. If a tool call returns 402, show a top-up link to the developer dashboard.| Status | What it means | What the host should show |
|---|---|---|
401 | The key is missing, expired, revoked, or copied incorrectly. | Create or rotate a key, then update the host config. |
402 | The account has no paid rewrite credits remaining. | Send the user to the top-up link in the developer dashboard. |
409 | The host retried a request with a changed body and reused an idempotency key. | Retry with a fresh request or keep the body unchanged. |
429 | The key is sending requests faster than the account limit allows. | Back off before retrying the same tool call. |
working | Remote polling reached its time budget while the rewrite is still running. | Call get_rewrite_result with the returned attempt_id. |
Store the key like a password. Rotate it when a machine, workspace, or teammate no longer needs access.