Skip to main content
Glama
howdoiusekeyboard

TrueVoice MCP

TrueVoice MCP

텍스트에서 AI 슬롭을 제거하는 도구

텍스트에서 AI 슬롭을 감지하고 제거하는 도구를 제공하는 Model Context Protocol 서버입니다. NLP 작가와 철학자들이 AI 생성 텍스트 패턴을 분석한 전문가 주석을 기반으로 합니다.

Deploy to Vercel

AI 슬롭이란?

다음과 같은 특징을 가진 저품질 AI 텍스트:

  • 정보 유용성: 낮은 콘텐츠 밀도, 무관한 잡담, 사실 오류

  • 스타일 품질: 반복적인 구조, 기업식 클리셰("delve into", "leverage")

  • 구조: 과도한 장황함, 낮은 일관성, 공식화된 패턴

연구 기반: arXiv:2509.19163v1

Related MCP server: Natural Voice MCP

빠른 시작

원클릭 설치

truevoice-mcp.kushagragolash.dev를 방문하여 Cursor, VS Code, Claude Code, Claude Desktop용 원클릭 설치 버튼을 확인하세요.

Claude Code

claude mcp add --transport http truevoice https://truevoice-mcp.kushagragolash.dev/api/mcp

Claude Desktop

설정 > 커넥터 > 사용자 지정 서버 추가를 열고 다음을 붙여넣으세요:

https://truevoice-mcp.kushagragolash.dev/api/mcp

모든 MCP 클라이언트

MCP 구성에 추가하세요:

{
  "mcpServers": {
    "truevoice": {
      "url": "https://truevoice-mcp.kushagragolash.dev/api/mcp"
    }
  }
}

로컬 개발 (stdio)

{
  "mcpServers": {
    "truevoice": {
      "command": "node",
      "args": ["/path/to/truevoice-mcp/dist/index.js"]
    }
  }
}

전체 로컬 설정은 개발을 참조하세요.

사용 가능한 도구

get_human_writing_rules

사용자 상황에 맞춘 포괄적인 안티 슬롭 작성 규칙을 제공합니다.

매개변수:

  • context (선택): 작성 유형 (예: "기술 블로그", "이메일", "문서")

예시:

Get writing rules for a technical blog post

check_for_slop

세 가지 차원에서 텍스트의 AI 슬롭 지표를 분석합니다.

매개변수:

  • text (필수): 분석할 텍스트

예시:

Check this for slop: "In today's digital landscape, it's important to
note that we should leverage cutting-edge solutions to deliver a
seamless user experience..."

반환값:

⚠️ AI Slop Analysis

- Overused Phrases: Found AI clichés - landscape, it's important to note,
  leverage, cutting-edge, seamless
- Verbosity: Overly long sentences (avg 28.5 words)
- Word Complexity: Unnecessarily formal - "utilize" → "use"

Recommendation: Revise to be more concise, direct, and natural.

get_slop_examples

피해야 할 AI 슬롭 패턴의 분류된 예시를 제공합니다.

매개변수:

  • category (선택): "phrases", "structure", "tone" 또는 "all"

예시:

Show me phrase examples to avoid

감지 대상

슬롭 문구

  • "delve into" → "explore"

  • "leverage" → "use"

  • "it's important to note" → 그냥 직접 서술

  • "robust", "seamless", "holistic", "paradigm shift"

  • "cutting-edge", "game changer", "synergy"

구조적 문제

  • 반복적인 문장 시작 (같은 단어 3회 이상)

  • 과도한 불릿 포인트와 목록

  • 캐주얼한 맥락에서의 과도한 격식 언어

  • 긴 문장 (평균 25단어 초과)

  • 낮은 어휘 밀도 (고유 단어 40% 미만)

연구 기반 점수 산정

세 가지 가중 차원으로 텍스트를 분석합니다:

  • 정보 유용성 (β=0.06) - 콘텐츠 밀도, 관련성

  • 스타일 품질 (β=0.05) - 반복, 일관성, 자연스러움

  • 구조 (β=0.05) - 장황함, 편향, 흐름

개발

사전 요구사항

  • Node.js 18+

  • TypeScript 5.6+

  • npm 또는 pnpm

로컬 설정

git clone https://github.com/howdoiusekeyboard/truevoice-mcp
cd truevoice-mcp
npm install
npm run build

사용 가능한 스크립트

  • npm run build - TypeScript 컴파일

  • npm run dev - 개발용 감시 모드

  • npm start - 로컬에서 stdio 서버 실행

  • npx ultracite check - 린트 검사

  • npx ultracite fix - 문제 자동 수정

로컬 테스트

stdio 전송 테스트 (Claude Desktop):

npm run build
npm start
# Server runs on stdio, test with MCP inspector:
npx @modelcontextprotocol/inspector node dist/index.js

HTTP 전송 테스트 (Cursor/Web):

vercel dev
# Visit http://localhost:3000

아키텍처

프로젝트 구조

truevoice-mcp/
├── api/                    # Vercel serverless functions
│   ├── mcp.ts             # HTTP MCP endpoint (Streamable HTTP)
│   ├── index.ts           # API info page
│   ├── check.ts           # Slop detection API
│   ├── rules.ts           # Rules API
│   └── examples.ts        # Examples API
├── src/                    # Core MCP server
│   ├── index.ts           # stdio transport (Claude Desktop)
│   └── rules.ts           # Anti-slop taxonomy
├── public/
│   └── index.html         # Homepage/docs
└── dist/                   # Compiled output

이중 전송 지원

stdio 전송 (로컬/Claude Desktop):

  • 직접 프로세스 통신

  • 낮은 지연 시간, 지속 연결

  • 로컬 개발에 최적

  • 진입점: dist/index.js

스트리밍 가능 HTTP 전송 (Vercel/Web):

  • POST 전용 모드 (MCP 2024-11-05 스펙)

  • 완전 무상태, 서버리스 최적화

  • SSE 없음 (Vercel 60초 타임아웃 제한)

  • 주문형 자동 확장

  • 엔드포인트: /api/mcp

기술 스택

  • 런타임: Node.js ESM 모듈 기반 TypeScript 5.6+

  • 검증: 타입 안전성을 위한 Zod 스키마

  • 린팅: Ultracite (Biome 기반)

  • MCP SDK: @modelcontextprotocol/sdk v1.19+

  • 배포: Vercel 서버리스 함수

직접 배포

원클릭 배포

Deploy with Vercel

수동 배포

npm install
vercel deploy --prod

MCP 엔드포인트: https://your-project.vercel.app/api/mcp

환경 변수

필요 없습니다! 서버는 기본 설정으로 바로 작동합니다.

사용 예시

Claude Desktop에서

"Check my email draft for AI slop patterns"
"Get writing rules for professional documentation"
"Show me examples of phrases to avoid in blog posts"

작성 도우미로

"Analyze this paragraph and suggest improvements:
[paste text]"

"Get human writing rules for casual Twitter posts,
then help me write a thread"

API 통합

# Check text for slop
curl -X POST https://truevoice-mcp.kushagragolash.dev/api/check \
  -H "Content-Type: application/json" \
  -d '{"text": "Your text here"}'

# Get writing rules
curl https://truevoice-mcp.kushagragolash.dev/api/rules?context=email

연구 기반

다음 전문가들의 주석을 기반으로 합니다:

  • NLP 연구자와 작가

  • 전문 철학자

  • 업계 콘텐츠 제작자

주요 발견 사항:

  • 관련성 (β=0.06) - 가장 중요한 슬롭 지표

  • 콘텐츠 밀도 (β=0.05) - 실질 콘텐츠 vs. 잡담 콘텐츠

  • 자연스러운 어조 (β=0.05) - 대화체 vs. 로봇체

  • 인간 인식 상관관계: AUROC 0.52-0.55

전체 논문: arXiv:2509.19163

문서

기여

기여를 환영합니다! 가이드라인은 CONTRIBUTING.md를 참조하세요.

빠른 체크리스트:

  • 커밋 전에 npx ultracite fix 실행

  • 변경 사항을 단순하고 집중적으로 유지

  • 새 패턴에 대한 예시 추가

  • 필요 시 문서 업데이트

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 참조


라이브 데모: truevoice-mcp.kushagragolash.dev MCP 엔드포인트: https://truevoice-mcp.kushagragolash.dev/api/mcp

Available Tools

3 tools
check_for_slopCheck for AI SlopA

Analyze text for AI slop indicators across three categories: Information Utility, Style Quality, and Structure. Returns specific patterns to avoid.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to analyze for AI slop indicators

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden of behavioral disclosure. It states that it analyzes text and returns patterns, which is basic but does not mention any side effects, prerequisites, error conditions, or performance characteristics. For a read-only analysis tool this is adequate, but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancies. The core purpose and categories are front-loaded, and the return value is clarified in the second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the essential purpose. However, it does not describe the structure of the returned patterns, any limitations (e.g., language support), or how to interpret results, leaving an agent with only partial context for effective invocation and use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (the single 'text' parameter has a description). The description adds that it analyzes text, which aligns with the schema but provides no additional nuance about format, encoding, or expected content beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (analyze) and resource (text for AI slop indicators), and explicitly lists three analysis categories. It distinguishes functionally from siblings (this analyzes, others provide rules/examples), though it doesn't name them directly, so it falls just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative routing is provided. The purpose implies this tool is for analyzing text, while get_human_writing_rules and get_slop_examples would likely be used for reference materials, but the description does not state this or offer any conditions for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_human_writing_rulesGet Human Writing RulesA

Get comprehensive rules for writing like a human and avoiding AI slop. Use these rules as system-level instructions for any text generation task.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoOptional: The context or type of writing (e.g., 'technical documentation', 'casual email', 'blog post')

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It conveys what the tool returns (rules) and how to apply them (as system-level instructions), which is reasonably transparent for a read-only retrieval tool. It doesn't disclose output scale, format, or how 'comprehensive' the rules are, but the essential behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the purpose front-loaded before the usage direction. The first sentence delivers the core function and the second adds practical deployment guidance. No filler or repetition; appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity — one optional parameter, zero required parameters, no output schema, no nested objects — the description covers the essentials: what the tool does and how to apply its results. The context parameter semantics are already in the schema. Nothing critical an agent needs to invoke it successfully is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — the single optional 'context' parameter is fully documented in the schema with an example ('technical documentation', 'casual email'), so the schema already does the heavy lifting. The description adds nothing about the parameter beyond what the schema provides, meriting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get comprehensive rules for writing like a human and avoiding AI slop.' This is clearly a rules-retrieval tool, and it is reasonably distinguishable from siblings check_for_slop (detection) and get_slop_examples (examples). However, it doesn't explicitly name siblings or state how it relates to them, so differentiation is implicit rather than direct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence provides useful application guidance: 'Use these rules as system-level instructions for any text generation task.' This tells the agent when and how to deploy the output. However, it offers no exclusions or alternatives — it doesn't say when to prefer get_slop_examples or check_for_slop instead, leaving some selection burden on the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_slop_examplesGet Slop ExamplesB

Get examples of common AI slop phrases and patterns to avoid, categorized by type.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoThe category of slop examples to retrieve

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries full responsibility for behavioral disclosure. It only states the core function without mentioning any restrictions, requirements, or side effects. There's no indication of output format, whether it returns a list, or any edge cases, providing minimal transparency beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that clearly states the action and resource. No wasted words or redundancy, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one optional parameter and no output schema, the description provides a basic understanding of its purpose. However, it doesn't specify the return format or any example output, which might be expected for a retrieval tool. Given the low complexity, it's adequate but leaves some room for more clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameter description, including an enum for category with clear descriptions. The description adds 'categorized by type' which aligns with the category parameter, but offers no additional semantic value beyond what the schema already provides. Baseline 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches examples of common AI slop phrases and patterns, categorized by type. It specifies the verb 'get' and resource 'examples of slop phrases and patterns', making its purpose distinct from siblings like get_human_writing_rules and check_for_slop, though it doesn't explicitly name them as alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus the sibling tools. It doesn't mention any exclusions, prerequisites, or alternative conditions, leaving the agent to infer that it's for retrieving examples. This is a significant gap given the tool's siblings have overlapping domains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedcheck_for_slop
    • First observedget_human_writing_rules
    • First observedget_slop_examples

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: retrieving rules, analyzing text for slop, and providing examples. There is no meaningful overlap between them, and their descriptions clearly separate the reference/instructional functions from the analysis function.

Naming Consistency4/5

Tool names follow a clear and predictable lowercase snake_case pattern, mostly using get_ for reference tools and check_for_ for the analysis tool. Minor inconsistency exists between get_ and check_for_ as verb styles, but the naming remains readable and consistent overall.

Tool Count5/5

Three tools is a well-scoped count for a focused MCP server centered on human writing rules and AI slop detection. Each tool serves a distinct and necessary role without bloat or redundancy.

Completeness4/5

The tool surface covers the core domain well: users can learn the rules, see examples, and check their text for slop. A minor gap is the absence of a rewrite/improvement tool, but this is not a significant failure for the apparent advisory/analysis purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/howdoiusekeyboard/TrueVoice-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server