Idiolect AI
Server Details
Write, rewrite, and refine in your own style. Build and manage your Writing Profile.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 9.2% over 73 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- moshpit-labs/idiolect-mcp
- GitHub Stars
- 0
- Server Listing
- idiolect-mcp
TDQS
Scored across 2 tools
The two tools are clearly distinct: 'write' creates new text while 'rewrite' modifies supplied prose. Each description explicitly states the different input and purpose, leaving no ambiguity about which tool to select.
Both tool names are single lowercase verbs that form a natural pair: write and rewrite. The naming is simple, predictable, and consistent in style.
Two tools feel minimal for a writing assistant, but the server's scope is tightly focused on generating and revising text. It is borderline rather than severely underprovisioned.
The core creation and revision workflows are covered, and the integrated profile shortfall mechanism handles personalization. A minor gap is the lack of any tool to manage or inspect the writing profile directly, but agents can work around it.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
- Removed
add_samples_to_writing_profile - Removed
create_my_voice - Removed
create_writing_profile - Removed
delete_writing_profile - Removed
draft_in_voice - Removed
get_my_voice - Removed
list_writing_profile_samples - Removed
list_writing_profiles - Removed
record_voice_feedback - Removed
remove_sample_from_writing_profile - Removed
replace_samples_in_writing_profile - Added
rewrite - Removed
rewrite_in_voice - Removed
score_voice - Removed
set_current_writing_profile - Added
write
1 tool update
- Changed
create_my_voice1 field changed- changed
Input schema / properties / samples / descriptionPrevious value: -"Distinct blocks of writing supplied or explicitly approved by the user."New value: +"Distinct, natural blocks of writing the user actually authored. Approval alone does not establish authorship; exclude prompts and AI-written text."
1 tool update
- Changed
record_voice_feedback4 fields changed- removed
Output schema / properties / feedbackRemoved value: -{ - "enum": [ - "accepted", - "corrected_and_accepted", - "rejected" - ], - "type": "string" -} - removed
Output schema / properties / learnedRemoved value: -{ - "type": "boolean" -} - added
Output schema / properties / needsFinalTextAdded value: +{ + "type": "boolean" +} - changed
Output schema / requiredPrevious value: -[ - "state", - "message", - "next", - "feedback", - "learned" -]New value: +[ + "state", + "message", + "next", + "needsFinalText" +]
1 tool update
- Changed
record_voice_feedback2 fields changed- changed
Input schema / properties / critique / maxLengthPrevious value: -2000New value: +20000 - changed
Input schema / properties / status / enumPrevious value: -[ - "accepted", - "corrected_and_accepted", - "rejected" -]New value: +[ + "accepted", + "corrected_and_accepted", + "rejected", + "normal" +]
1 tool update
- Changed
record_voice_feedback4 fields changed- changed
Input schema / properties / correctionText / descriptionPrevious value: -"The complete final text the user actually used after correcting the output. Never send an excerpt, summary, or diff."New value: +"The user's final text, verbatim and complete. Never an excerpt, a diff, or your own description of what changed — if you do not have their exact words, omit this field and describe the change in critique instead." - added
Input schema / properties / critique / descriptionAdded value: +"What you observed about how the output landed, in the user's words or your own: what was wrong, what they changed, or why they kept it. Free text, and the right home for any description of an edit you cannot quote verbatim." - removed
Input schema / properties / permissionToLearnRemoved value: -{ - "type": "boolean" -} - changed
Input schema / requiredPrevious value: -[ - "outputId", - "status", - "permissionToLearn" -]New value: +[ + "outputId", + "status" +]
5 tool updates
- Changed
create_my_voice2 fields changed- added
Output schema / properties / errorAdded value: +{ + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "insufficient_credits", + "credit_accounting_unavailable", + "local_llm_budget_exhausted" + ], + "type": "string" + }, + "retryable": { + "enum": [ + true + ], + "type": "boolean" + } + }, + "required": [ + "code", + "retryable" + ], + "type": "object" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "ready", - "more_evidence_required", - "build_in_progress", - "failed" -]New value: +[ + "ready", + "more_evidence_required", + "build_in_progress", + "failed", + "rate_limited" +]
- Changed
draft_in_voice2 fields changed- changed
Output schema / properties / error / properties / code / enumPrevious value: -[ - "insufficient_credits", - "credit_accounting_unavailable" -]New value: +[ + "insufficient_credits", + "credit_accounting_unavailable", + "local_llm_budget_exhausted" +] - changed
Output schema / properties / status / enumPrevious value: -[ - "ready", - "setup_required", - "purchase_required", - "accounting_unavailable" -]New value: +[ + "ready", + "setup_required", + "purchase_required", + "accounting_unavailable", + "rate_limited" +]
- Added
list_writing_profile_samples - Changed
rewrite_in_voice2 fields changed- changed
Output schema / properties / error / properties / code / enumPrevious value: -[ - "insufficient_credits", - "credit_accounting_unavailable" -]New value: +[ + "insufficient_credits", + "credit_accounting_unavailable", + "local_llm_budget_exhausted" +] - changed
Output schema / properties / status / enumPrevious value: -[ - "ready", - "setup_required", - "purchase_required", - "accounting_unavailable" -]New value: +[ + "ready", + "setup_required", + "purchase_required", + "accounting_unavailable", + "rate_limited" +]
- Changed
score_voice2 fields changed- added
Output schema / properties / errorAdded value: +{ + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "insufficient_credits", + "credit_accounting_unavailable", + "local_llm_budget_exhausted" + ], + "type": "string" + }, + "retryable": { + "enum": [ + true + ], + "type": "boolean" + } + }, + "required": [ + "code", + "retryable" + ], + "type": "object" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "ready", - "setup_required" -]New value: +[ + "ready", + "setup_required", + "rate_limited" +]
1 tool update
- Changed
rewrite_in_voice1 field changed- changed
Input schema / properties / targetRegister / enumPrevious value: -[ - "email", - "slack", - "essay" -]New value: +[ + "email", + "slack", + "social", + "essay" +]
1 tool update
- Changed
record_voice_feedback1 field changed- added
Input schema / properties / correctionText / descriptionAdded value: +"The complete final text the user actually used after correcting the output. Never send an excerpt, summary, or diff."
2 tool updates
- Changed
remove_sample_from_writing_profile2 fields changed- added
Output schema / properties / value / properties / heldNotUsableAdded value: +{ + "minimum": 0, + "type": "integer" +} - changed
Output schema / properties / value / requiredPrevious value: -[ - "profileId", - "generation", - "samples", - "needsWriting" -]New value: +[ + "profileId", + "generation", + "samples", + "needsWriting", + "heldNotUsable" +]
- Changed
replace_samples_in_writing_profile3 fields changed- changed
Output schema / properties / error / properties / code / enumPrevious value: -[ - "insufficient_evidence", - "profile_not_found", - "unexpected_error" -]New value: +[ + "insufficient_evidence", + "profile_not_found", + "samples_not_fully_visible", + "unexpected_error" +] - added
Output schema / properties / value / properties / heldNotUsableAdded value: +{ + "minimum": 0, + "type": "integer" +} - changed
Output schema / properties / value / requiredPrevious value: -[ - "profileId", - "generation", - "samples", - "needsWriting" -]New value: +[ + "profileId", + "generation", + "samples", + "needsWriting", + "heldNotUsable" +]
3 tool updates
- Changed
draft_in_voice1 field changed- changed
Output schema / properties / generationStatus / enumPrevious value: -[ - "succeeded", - "in_progress", - "completed_unavailable", - "failed", - "fenced_out", - "rebuild_required" -]New value: +[ + "succeeded" +]
- Changed
get_my_voice4 fields changed- removed
Output schema / properties / feedbackAvailableRemoved value: -{ - "type": "boolean" -} - removed
Output schema / properties / feedbackInstructionRemoved value: -{ - "type": [ - "string", - "null" - ] -} - removed
Output schema / properties / generationStatusRemoved value: -{ - "enum": [ - "succeeded" - ], - "type": "string" -} - removed
Output schema / properties / outputIdRemoved value: -{ - "type": [ - "string", - "null" - ] -}
- Changed
rewrite_in_voice1 field changed- changed
Output schema / properties / generationStatus / enumPrevious value: -[ - "succeeded", - "in_progress", - "completed_unavailable", - "failed", - "fenced_out", - "rebuild_required" -]New value: +[ + "succeeded" +]
7 tool updates
- Changed
add_samples_to_writing_profile5 fields changed- added
Input schema / properties / profileId / descriptionAdded value: +"The Writing Profile's id, or its exact name. Omit to use the current profile." - removed
Input schema / properties / profileId / formatRemoved value: -"uuid" - added
Input schema / properties / profileId / minLengthAdded value: +1 - changed
Input schema / requiredPrevious value: -[ - "profileId", - "samples" -]New value: +[ + "samples" +] - changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
create_writing_profile1 field changed- changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
delete_writing_profile7 fields changed- added
Input schema / properties / profileId / descriptionAdded value: +"The Writing Profile's id, or its exact name." - removed
Input schema / properties / profileId / formatRemoved value: -"uuid" - added
Input schema / properties / profileId / minLengthAdded value: +1 - added
Input schema / properties / replacementProfileId / descriptionAdded value: +"The Writing Profile's id, or its exact name." - removed
Input schema / properties / replacementProfileId / formatRemoved value: -"uuid" - added
Input schema / properties / replacementProfileId / minLengthAdded value: +1 - changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
list_writing_profiles1 field changed- changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
remove_sample_from_writing_profile4 fields changed- added
Input schema / properties / profileId / descriptionAdded value: +"The Writing Profile's id, or its exact name." - removed
Input schema / properties / profileId / formatRemoved value: -"uuid" - added
Input schema / properties / profileId / minLengthAdded value: +1 - changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
replace_samples_in_writing_profile4 fields changed- added
Input schema / properties / profileId / descriptionAdded value: +"The Writing Profile's id, or its exact name." - removed
Input schema / properties / profileId / formatRemoved value: -"uuid" - added
Input schema / properties / profileId / minLengthAdded value: +1 - changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
- Changed
set_current_writing_profile4 fields changed- added
Input schema / properties / profileId / descriptionAdded value: +"The Writing Profile's id, or its exact name." - removed
Input schema / properties / profileId / formatRemoved value: -"uuid" - added
Input schema / properties / profileId / minLengthAdded value: +1 - changed
Output schema / properties / error / properties / detail / requiredPrevious value: -[ - "reason", - "message", - "neededChars", - "neededBlocks", - "droppedBlocks", - "minimumChars", - "minimumBlocks" -]New value: +[ + "message" +]
2 tool updates
- Changed
draft_in_voice1 field changed- changed
Input schema / properties / brief / maxLengthPrevious value: -4000New value: +8000
- Changed
replace_samples_in_writing_profile1 field changed- changed
Output schema / properties / error / properties / code / enumPrevious value: -[ - "profile_not_found", - "unexpected_error" -]New value: +[ + "insufficient_evidence", + "profile_not_found", + "unexpected_error" +]
7 tool updates
- Changed
add_samples_to_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
create_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
delete_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
list_writing_profiles1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
remove_sample_from_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
replace_samples_in_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
- Changed
set_current_writing_profile1 field changed- added
Output schema / properties / error / properties / detailAdded value: +{ + "additionalProperties": false, + "properties": { + "droppedBlocks": { + "minimum": 0, + "type": "integer" + }, + "message": { + "type": "string" + }, + "minimumBlocks": { + "minimum": 0, + "type": "integer" + }, + "minimumChars": { + "minimum": 0, + "type": "integer" + }, + "neededBlocks": { + "minimum": 0, + "type": "integer" + }, + "neededChars": { + "minimum": 0, + "type": "integer" + }, + "reason": { + "enum": [ + "insufficient_input", + "unsupported_language" + ], + "type": "string" + } + }, + "required": [ + "reason", + "message", + "neededChars", + "neededBlocks", + "droppedBlocks", + "minimumChars", + "minimumBlocks" + ], + "type": "object" +}
2 tool updates
- Added
remove_sample_from_writing_profile - Added
replace_samples_in_writing_profile
5 tool updates
- Added
add_samples_to_writing_profile - Added
create_writing_profile - Added
delete_writing_profile - Added
list_writing_profiles - Added
set_current_writing_profile
2 tool updates
- Changed
record_voice_feedback1 field changed- added
Input schema / properties / critiqueAdded value: +{ + "maxLength": 2000, + "minLength": 1, + "type": "string" +}
- Changed
rewrite_in_voice1 field changed- added
Input schema / properties / instructionsAdded value: +{ + "description": "Optional instruction from the user about the rewrite itself — length, tone, audience, what to cut or keep. Kept separate from `text`: put the request here, never inside the prose to rewrite.", + "maxLength": 4000, + "minLength": 1, + "type": "string" +}
Related MCP Connectors
Build a voice from your own texts, measure whether a text still sounds like you, then write in it.
A personal RAG database you build from chat, so AI creates work that sounds like you.
Read, revise, and set up your book, article, or script in Tabularia, the writing studio.
Rewrite text so it reads naturally, or paraphrase it in a chosen style. Works in many languages.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAllows AI assistants to measure your writing style across 45 attributes, create a voice profile from your samples, generate drafts matching that voice, and score any text for voice consistency.MIT
- FlicenseNot gradedqualityBmaintenanceEnables agents to rewrite drafts in your own voice, adapted to the occasion and channel, by learning your style from samples you wrote and from feedback on what you actually send. Supports multiple "Hands" per account with tools for creating, updating, and inspecting learned rules, style cards, and usage.-
- AlicenseNot gradedqualityAmaintenanceLets AI agents learn a specific person's writing style from their own samples and rewrite AI-generated drafts in that voice before anyone reads them. Runs locally with a stored voice profile shared across agents, adding redaction, retrieval-based exemplars, and a deterministic check that flags introduced phrases, dropped numbers, broken links, and stray placeholders for review.14 npmApache 2.0
- AlicenseAqualityBmaintenanceEnables human-like non-fiction authoring by training custom voices, applying tone presets, auditing drafts for AI tells, and managing dictionaries, all locally.1954 npm9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.