Stylemcp

io.github.3DUNLMTDPublished by GitHub account 3DUNLMTDv0.1.4Updated Oct 24, 2026

Brand rules for AI outputs. Validate and rewrite text to match your brand voice.

Overview

AI-generated overview

Checks and rewrites AI-generated text against brand style packs, giving an assistant tools to validate copy, fix tone and read voice rules.

What you can do
  • Validate text against a brand style pack and get a score plus rule violations
  • Rewrite text to match the brand voice
  • Read the rules behind a pack: voice and tone guidelines, approved copy patterns, CTA rules and design tokens
  • List the available style packs (such as saas, ecommerce, healthcare and finance)
When to use it
Useful when an assistant drafts marketing, product or UI copy and you want each output checked or rewritten to a defined brand voice before it ships, or when you want the brand rules available to the model while it writes.
Requirements
Runs locally over stdio, typically launched with npx stylemcp, so Node.js is needed. The README also documents a hosted REST API and self-hosting with Docker or npm, where PORT, STYLEMCP_API_KEY and GITHUB_WEBHOOK_SECRET are used. No credentials are declared for the MCP server itself.
Before you install
The rewrite tool changes text, so review rewritten copy before publishing. The README's hosted API example sends text to an external service; use the local server if copy is confidential. Self-hosting with authentication requires setting STYLEMCP_API_KEY and GITHUB_WEBHOOK_SECRET yourself.

Installation

In SourceWeft

  1. Open Stylemcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

StyleMCP

Executable brand rules for AI models and agents. Keep every AI-generated message on-brand.

What is StyleMCP?

StyleMCP validates and rewrites AI-generated text to match your brand voice. Use it as:

  • REST API - Validate text from any application
  • MCP Server - Direct integration with Claude and other AI agents
  • CLI - Check copy in your terminal or CI/CD
  • GitHub Action - Catch off-brand copy in pull requests

Quick Start

API

bash
curl -X POST https://stylemcp.com/api/validate \  -H "Content-Type: application/json" \  -d '{"text": "Click here to learn more!"}'

Response:

json
{  "valid": false,  "score": 65,  "violations": [    {      "rule": "no-click-here",      "severity": "error",      "message": "Avoid 'click here' - describe the destination instead",      "suggestion": "Learn more about our features"    }  ]}

CLI

bash
# Installnpm install -g stylemcp
# Validate textstylemcp validate "Click here to learn more"
# Validate filestylemcp validate src/copy/homepage.json --pack saas
# Rewrite textstylemcp rewrite "Please utilize our product" --mode aggressive

MCP (Claude Desktop)

Add to your claude_desktop_config.json:

json
{  "mcpServers": {    "stylemcp": {      "command": "npx",      "args": ["stylemcp"]    }  }}

Now Claude can validate and rewrite text using your brand rules.

API Endpoints

MethodEndpointDescription
POST/api/validateValidate text against brand rules
POST/api/rewriteRewrite text to match brand voice
POST/api/validate/batchValidate multiple texts
GET/api/packsList available style packs
GET/api/packs/{pack}/voiceGet voice guidelines
GET/api/packs/{pack}/ctasGet CTA rules
GET/api/mcp/sseMCP SSE endpoint
POST/api/mcp/callMCP tool calls

Style Packs

StyleMCP uses style packs - YAML files that define your brand rules.

Available Packs

PackBest ForKey Features
saasB2B SaaS productsProfessional, clear, helpful tone
ecommerceDTC & retail brandsFriendly, conversion-focused, no pushy CTAs
healthcareMedical & wellnessCompliant language, no cure claims, person-first
financeFintech & bankingPrecise, risk-aware, no guaranteed returns

Example: saas Pack

  • Vocabulary: Prefer "use" over "utilize", "help" over "assist"
  • Forbidden words: "synergy", "leverage", "cutting-edge", "game-changing"
  • Patterns to avoid: "click here", "we're sorry for any inconvenience"
  • CTA rules: Avoid "Submit", "Click here", "OK" - prefer "Save", "Create", "Sign up"

Pack Structure

packs/  my-brand/    manifest.yaml      # Pack metadata    voice.yaml         # Tone, vocabulary, forbidden words    copy_patterns.yaml # Reusable copy templates    cta_rules.yaml     # Button/CTA guidelines    tokens.json        # Design tokens (optional)

Create Your Own Pack

bash
# Copy the default packcp -r packs/saas packs/my-brand
# Edit the rulesnano packs/my-brand/voice.yaml
# Use your packcurl -X POST https://stylemcp.com/api/validate \  -d '{"text": "Your text", "pack": "my-brand"}'

voice.yaml Example

yaml
tone:  summary: "Friendly, clear, and helpful"  attributes:    - name: friendly      weight: 0.8    - name: professional      weight: 0.7
vocabulary:  rules:    - preferred: "use"      avoid: ["utilize", "leverage"]    - preferred: "help"      avoid: ["assist", "facilitate"]
  forbidden:    - "synergy"    - "paradigm shift"    - "game-changing"
doNot:  - pattern: "click here"    reason: "Poor accessibility"    suggestion: "Describe the destination"    severity: error
  - pattern: "\\b(obviously|simply|just)\\b"    isRegex: true    reason: "Can make users feel stupid"    severity: warning

Self-Hosting

Docker

bash
# Clone the repogit clone https://github.com/3DUNLMTD/stylemcp.gitcd stylemcp
# Set up environmentecho "STYLEMCP_API_KEY=$(openssl rand -hex 32)" > .env
# Run with Dockerdocker compose up -d
# Check healthcurl http://localhost:3000/health

Manual

bash
# Install dependenciesnpm install
# Buildnpm run build
# Start servernpm start

GitHub Actions

yaml
name: Brand Checkon: [pull_request]
jobs:  validate:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4
      - name: Validate copy        run: |          npx stylemcp validate src/copy/*.json \            --min-score 80 \            --format github

Environment Variables

VariableDescriptionDefault
PORTServer port3000
STYLEMCP_API_KEYAPI key for authentication(none)
GITHUB_WEBHOOK_SECRETGitHub webhook secret(none)

MCP Tools

When used as an MCP server, StyleMCP provides these tools:

ToolDescription
validate_textValidate text against brand rules
rewrite_to_styleRewrite text to match brand voice
get_voice_rulesGet voice and tone guidelines
get_copy_patternsGet approved copy patterns
get_cta_rulesGet CTA guidelines
get_tokensGet design tokens
list_packsList available style packs

What Gets Validated?

The saas pack checks for:

Vocabulary

  • Use simple words: "use" not "utilize", "help" not "assist"
  • Avoid jargon: "synergy", "leverage", "paradigm shift"
  • Avoid weak intensifiers: "very", "really", "extremely"

Patterns

  • No "click here" (accessibility issue)
  • No "we're sorry for any inconvenience" (corporate non-apology)
  • No double "please" (sounds desperate)
  • No starting with "Sorry" (lead with solutions)

CTAs

  • Avoid generic: "Submit", "OK", "Yes/No", "Click here"
  • Use specific actions: "Save", "Create", "Sign up", "Export"
  • Max 4 words

Constraints

  • Max 25 words per sentence
  • No exclamation marks (in most contexts)
  • First-person plural ("we", "our")
  • Oxford comma

License

MIT

Source: README.md at commit fb5ea98

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.4LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.