Writingmate MCP
Use Writingmate as a remote Model Context Protocol (MCP) server. It gives an MCP host tools for model discovery, text generation, image generation, and video generation.
Official endpoint:
https://writingmate.ai/api/mcp
Connect the server
Use OAuth when the MCP host supports it. OAuth opens Writingmate in the user's browser and asks the user to approve access.
For Claude Code:
claude mcp add --transport http writingmate https://writingmate.ai/api/mcp
claude mcp list
For Codex, add this to ~/.codex/config.toml when a fixed Developer Key is required:
[mcp_servers.writingmate]
url = "https://writingmate.ai/api/mcp"
bearer_token_env_var = "WRITINGMATE_DEVELOPER_KEY"
Never paste a Developer Key into a public file, issue, screenshot, or prompt. Keep it in an environment variable or the host's secure credential storage.
Available tools
The server exposes these tools:
list_models: list models available to the authenticated Writingmate accountget_model: retrieve current metadata for one exact model IDcreate_chat_completion: create an OpenAI-compatible chat completioncreate_response: create an OpenAI-compatible Responses API responsegenerate_image: generate one image from a promptgenerate_video: start a video generationget_video: check a video generation by ID
Tool names may appear with a server namespace, such as writingmate.list_models. Match by the final tool name instead of assuming a namespace.
Operating rules
- Call
list_modelsbefore choosing a model. The catalog and account access can change. - Use exact model IDs returned by the server. Do not invent or silently substitute an ID.
- Call
get_modelwhen the task depends on current modality, limits, or other metadata. - Tell the user which model IDs you used.
- Surface tool errors and unavailable models. Do not claim that a generation ran when no successful tool result exists.
- Ask before making a large batch of paid or allowance-consuming generations.
- Do not send secrets, private source code, personal data, or regulated data unless the user confirms that the transfer is allowed.
Compare AI models
Use this workflow when the user asks to compare, benchmark, debate, or get a second opinion from multiple models:
- Call
list_models. - Select only models that fit the requested modality and are available to the account.
- Show the exact selected model IDs before a large comparison. For a small comparison of two models, proceed unless the user's request is ambiguous.
- Send every model the same user message independently.
- Keep shared generation settings equal where the models support them.
- Preserve each raw response before evaluating it.
- Report failures instead of replacing a failed model.
- Compare outputs with criteria tied to the user's task.
For a text comparison, call create_chat_completion once per model with a new message array:
{
"model": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "USER_TASK"
}
],
"temperature": 0.2,
"max_tokens": 800
}
Return:
- exact model ID
- raw answer
- latency or usage only when the tool returns it
- task-specific scores with brief evidence
- a recommendation that explains the trade-off
Do not describe one model as universally best from a single prompt.
Generate an image
- Call
list_modelsand select an available image model when the user did not provide an exact ID. - Preserve the user's requested subject, composition, aspect ratio, text, and exclusions.
- Call
generate_image. - Return the generated asset from the tool result. Do not claim that an image exists if the call failed.
Example arguments:
{
"model": "MODEL_ID",
"prompt": "A precise description of the requested image",
"size": "1024x1024",
"n": 1
}
Use only one output per call because the server currently accepts n: 1.
Generate a video
- Call
list_modelsand select an available video model when needed. - Call
generate_videowith the prompt and supported options. - Save the returned generation ID.
- Poll
get_videoat reasonable intervals until the job succeeds or fails. - Return the final video asset or the exact failure.
Example start arguments:
{
"model": "MODEL_ID",
"prompt": "A precise description of the requested video",
"seconds": "8",
"size": "1280x720"
}
Do not start duplicate video jobs merely because a generation is still processing.
Troubleshooting
Authentication required
- With OAuth: disconnect and reconnect the server, then complete browser approval.
- With a Developer Key: confirm the host sends
Authorization: Bearer ...without exposing the key. - Confirm the key belongs to Writingmate, not an upstream model provider.
Model is listed but the call fails
- Call
get_modelfor current metadata. - Check the Writingmate plan and workspace access.
- Report the exact model ID and error.
- Offer another model only after telling the user why.
The host describes results but shows no tool call
Treat the work as not executed. Call the appropriate Writingmate tool and return its actual result.
References
- Setup and product page: https://writingmate.ai/developers
- MCP documentation: https://writingmate.ai/docs/plugins/mcp-integration
- Live model directory: https://writingmate.ai/models
- Pricing and plan limits: https://writingmate.ai/pricing