Skip to main content
Glama

Server Details

Loads your personal writing voice into any AI and scores how closely a draft matches it.

Ownership verified

Glama couldn't complete the latest health check. 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
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
moshpit-labs/idiolect-mcp
GitHub Stars
0
Server Listing
idiolect-mcp

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency5/5

Both tool names are single lowercase verbs that form a natural pair: write and rewrite. The naming is simple, predictable, and consistent in style.

Tool Count3/5

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.

Completeness4/5

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.

  1. 16 tool updates
    • Removedadd_samples_to_writing_profile
    • Removedcreate_my_voice
    • Removedcreate_writing_profile
    • Removeddelete_writing_profile
    • Removeddraft_in_voice
    • Removedget_my_voice
    • Removedlist_writing_profile_samples
    • Removedlist_writing_profiles
    • Removedrecord_voice_feedback
    • Removedremove_sample_from_writing_profile
    • Removedreplace_samples_in_writing_profile
    • Addedrewrite
    • Removedrewrite_in_voice
    • Removedscore_voice
    • Removedset_current_writing_profile
    • Addedwrite
  2. 1 tool update
    • Changedcreate_my_voice1 field changed
      • changedInput schema / properties / samples / description
        Previous 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."
  3. 1 tool update
    • Changedrecord_voice_feedback4 fields changed
      • removedOutput schema / properties / feedback
        Removed value: -{
        -  "enum": [
        -    "accepted",
        -    "corrected_and_accepted",
        -    "rejected"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / learned
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedOutput schema / properties / needsFinalText
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "state",
        -  "message",
        -  "next",
        -  "feedback",
        -  "learned"
        -]New value: +[
        +  "state",
        +  "message",
        +  "next",
        +  "needsFinalText"
        +]
  4. 1 tool update
    • Changedrecord_voice_feedback2 fields changed
      • changedInput schema / properties / critique / maxLength
        Previous value: -2000New value: +20000
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "accepted",
        -  "corrected_and_accepted",
        -  "rejected"
        -]New value: +[
        +  "accepted",
        +  "corrected_and_accepted",
        +  "rejected",
        +  "normal"
        +]
  5. 1 tool update
    • Changedrecord_voice_feedback4 fields changed
      • changedInput schema / properties / correctionText / description
        Previous 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."
      • addedInput schema / properties / critique / description
        Added 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."
      • removedInput schema / properties / permissionToLearn
        Removed value: -{
        -  "type": "boolean"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "outputId",
        -  "status",
        -  "permissionToLearn"
        -]New value: +[
        +  "outputId",
        +  "status"
        +]
  6. 5 tool updates
    • Changedcreate_my_voice2 fields changed
      • addedOutput schema / properties / error
        Added 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"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "ready",
        -  "more_evidence_required",
        -  "build_in_progress",
        -  "failed"
        -]New value: +[
        +  "ready",
        +  "more_evidence_required",
        +  "build_in_progress",
        +  "failed",
        +  "rate_limited"
        +]
    • Changeddraft_in_voice2 fields changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "insufficient_credits",
        -  "credit_accounting_unavailable"
        -]New value: +[
        +  "insufficient_credits",
        +  "credit_accounting_unavailable",
        +  "local_llm_budget_exhausted"
        +]
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "ready",
        -  "setup_required",
        -  "purchase_required",
        -  "accounting_unavailable"
        -]New value: +[
        +  "ready",
        +  "setup_required",
        +  "purchase_required",
        +  "accounting_unavailable",
        +  "rate_limited"
        +]
    • Addedlist_writing_profile_samples
    • Changedrewrite_in_voice2 fields changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "insufficient_credits",
        -  "credit_accounting_unavailable"
        -]New value: +[
        +  "insufficient_credits",
        +  "credit_accounting_unavailable",
        +  "local_llm_budget_exhausted"
        +]
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "ready",
        -  "setup_required",
        -  "purchase_required",
        -  "accounting_unavailable"
        -]New value: +[
        +  "ready",
        +  "setup_required",
        +  "purchase_required",
        +  "accounting_unavailable",
        +  "rate_limited"
        +]
    • Changedscore_voice2 fields changed
      • addedOutput schema / properties / error
        Added 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"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "ready",
        -  "setup_required"
        -]New value: +[
        +  "ready",
        +  "setup_required",
        +  "rate_limited"
        +]
  7. 1 tool update
    • Changedrewrite_in_voice1 field changed
      • changedInput schema / properties / targetRegister / enum
        Previous value: -[
        -  "email",
        -  "slack",
        -  "essay"
        -]New value: +[
        +  "email",
        +  "slack",
        +  "social",
        +  "essay"
        +]
  8. 1 tool update
    • Changedrecord_voice_feedback1 field changed
      • addedInput schema / properties / correctionText / description
        Added value: +"The complete final text the user actually used after correcting the output. Never send an excerpt, summary, or diff."
  9. 2 tool updates
    • Changedremove_sample_from_writing_profile2 fields changed
      • addedOutput schema / properties / value / properties / heldNotUsable
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / value / required
        Previous value: -[
        -  "profileId",
        -  "generation",
        -  "samples",
        -  "needsWriting"
        -]New value: +[
        +  "profileId",
        +  "generation",
        +  "samples",
        +  "needsWriting",
        +  "heldNotUsable"
        +]
    • Changedreplace_samples_in_writing_profile3 fields changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "insufficient_evidence",
        -  "profile_not_found",
        -  "unexpected_error"
        -]New value: +[
        +  "insufficient_evidence",
        +  "profile_not_found",
        +  "samples_not_fully_visible",
        +  "unexpected_error"
        +]
      • addedOutput schema / properties / value / properties / heldNotUsable
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / value / required
        Previous value: -[
        -  "profileId",
        -  "generation",
        -  "samples",
        -  "needsWriting"
        -]New value: +[
        +  "profileId",
        +  "generation",
        +  "samples",
        +  "needsWriting",
        +  "heldNotUsable"
        +]
  10. 3 tool updates
    • Changeddraft_in_voice1 field changed
      • changedOutput schema / properties / generationStatus / enum
        Previous value: -[
        -  "succeeded",
        -  "in_progress",
        -  "completed_unavailable",
        -  "failed",
        -  "fenced_out",
        -  "rebuild_required"
        -]New value: +[
        +  "succeeded"
        +]
    • Changedget_my_voice4 fields changed
      • removedOutput schema / properties / feedbackAvailable
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / feedbackInstruction
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / generationStatus
        Removed value: -{
        -  "enum": [
        -    "succeeded"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / outputId
        Removed value: -{
        -  "type": [
        -    "string",
        -    "null"
        -  ]
        -}
    • Changedrewrite_in_voice1 field changed
      • changedOutput schema / properties / generationStatus / enum
        Previous value: -[
        -  "succeeded",
        -  "in_progress",
        -  "completed_unavailable",
        -  "failed",
        -  "fenced_out",
        -  "rebuild_required"
        -]New value: +[
        +  "succeeded"
        +]
  11. 7 tool updates
    • Changedadd_samples_to_writing_profile5 fields changed
      • addedInput schema / properties / profileId / description
        Added value: +"The Writing Profile's id, or its exact name. Omit to use the current profile."
      • removedInput schema / properties / profileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / profileId / minLength
        Added value: +1
      • changedInput schema / required
        Previous value: -[
        -  "profileId",
        -  "samples"
        -]New value: +[
        +  "samples"
        +]
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changedcreate_writing_profile1 field changed
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changeddelete_writing_profile7 fields changed
      • addedInput schema / properties / profileId / description
        Added value: +"The Writing Profile's id, or its exact name."
      • removedInput schema / properties / profileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / profileId / minLength
        Added value: +1
      • addedInput schema / properties / replacementProfileId / description
        Added value: +"The Writing Profile's id, or its exact name."
      • removedInput schema / properties / replacementProfileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / replacementProfileId / minLength
        Added value: +1
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changedlist_writing_profiles1 field changed
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changedremove_sample_from_writing_profile4 fields changed
      • addedInput schema / properties / profileId / description
        Added value: +"The Writing Profile's id, or its exact name."
      • removedInput schema / properties / profileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / profileId / minLength
        Added value: +1
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changedreplace_samples_in_writing_profile4 fields changed
      • addedInput schema / properties / profileId / description
        Added value: +"The Writing Profile's id, or its exact name."
      • removedInput schema / properties / profileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / profileId / minLength
        Added value: +1
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
    • Changedset_current_writing_profile4 fields changed
      • addedInput schema / properties / profileId / description
        Added value: +"The Writing Profile's id, or its exact name."
      • removedInput schema / properties / profileId / format
        Removed value: -"uuid"
      • addedInput schema / properties / profileId / minLength
        Added value: +1
      • changedOutput schema / properties / error / properties / detail / required
        Previous value: -[
        -  "reason",
        -  "message",
        -  "neededChars",
        -  "neededBlocks",
        -  "droppedBlocks",
        -  "minimumChars",
        -  "minimumBlocks"
        -]New value: +[
        +  "message"
        +]
  12. 2 tool updates
    • Changeddraft_in_voice1 field changed
      • changedInput schema / properties / brief / maxLength
        Previous value: -4000New value: +8000
    • Changedreplace_samples_in_writing_profile1 field changed
      • changedOutput schema / properties / error / properties / code / enum
        Previous value: -[
        -  "profile_not_found",
        -  "unexpected_error"
        -]New value: +[
        +  "insufficient_evidence",
        +  "profile_not_found",
        +  "unexpected_error"
        +]
  13. 7 tool updates
    • Changedadd_samples_to_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changedcreate_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changeddelete_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changedlist_writing_profiles1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changedremove_sample_from_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changedreplace_samples_in_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
    • Changedset_current_writing_profile1 field changed
      • addedOutput schema / properties / error / properties / detail
        Added 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"
        +}
  14. 2 tool updates
    • Addedremove_sample_from_writing_profile
    • Addedreplace_samples_in_writing_profile
  15. 5 tool updates
    • Addedadd_samples_to_writing_profile
    • Addedcreate_writing_profile
    • Addeddelete_writing_profile
    • Addedlist_writing_profiles
    • Addedset_current_writing_profile
  16. 2 tool updates
    • Changedrecord_voice_feedback1 field changed
      • addedInput schema / properties / critique
        Added value: +{
        +  "maxLength": 2000,
        +  "minLength": 1,
        +  "type": "string"
        +}
    • Changedrewrite_in_voice1 field changed
      • addedInput schema / properties / instructions
        Added 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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Personal RAG database and semantic search built from inside your AI chat. Store knowledge, voice, and skills; Claude and ChatGPT create work that sounds like you.
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that analyzes your writing style to generate personal voice rules, scores drafts for AI slop, and verifies authorship, enabling LLMs to write in your specific voice.
    7
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables LLMs to access a user's personal writing context—voice, style, opinions, expertise, projects, and communication patterns—via curated markdown files, helping the LLM match the user's voice when generating written content.
    2
    3
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.