Voice Agent Linter

Lints a phone voice agent prompt and platform config before real callers reach it.

사용해야 할까요

품질 및 안전성

A
설명 품질
93%
스키마 완전성
93%
이름 품질
87%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'lint_voice_agent' description contains placeholder textlint_voice_agent에서
  • INFOTool description contains placeholder or incomplete textlint_voice_agent에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,215토큰 (도구 정의)
~2.6 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.95%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "voice-linter": {
      "url": "https://mcp.modernmustardseed.com/voice-linter"
    }
  }
}

원격 엔드포인트

https://mcp.modernmustardseed.com/voice-linterstreamable-http

할 수 있는 일

도구 목록

도구 (3)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢lint_voice_agent(system_prompt, config_json, first_message, platform, min_severity)

Check a phone voice agent’s system prompt and, optionally, its config JSON (Vapi assistant, Retell agent or LLM, ElevenLabs agent, or OpenAI Realtime session) against rule-based checks learned on live calls. Finds: no live date and dates without a year; phone numbers, emails, URLs, hyphen ranges and long numbers the voice will misread; no spelling protocol or bare-letter spelling; instructions to pass as human, missing AI disclosure and missing recording notice; scripted tool start lines, stall phrases and silent or long openers; tools with no description, untyped or undescribed parameters, undefined required fields, unformatted date parameters and unstated results; Vapi nested item enums, flat analysisPlan keys, disabled plans and plans without the transcript; ElevenLabs Turbo stutter risk; no transfer or callback path and no end-call; placeholders, secrets, very long prompts and contradictory always and never rules. Each finding has a rule id, severity, the exact line (and JSON path for config), an excerpt, a specific message and the fix; disclosure and recording rules carry their legal citations with the date read. Returns a 0 to 100 score and a verdict. Do not paste credentials: API keys, bearer tokens, passwords and the values of secret-named config fields (apiKey, secret, token, password, credentials, Authorization) are stripped from the input before any check runs and replaced with "[secret removed]", so they are never read, returned, logged or stored; the output says how many were removed. No model reads the input and nothing is stored. Informational, not legal advice.

입력 스키마

{
  "type": "object",
  "properties": {
    "system_prompt": {
      "description": "The agent’s system prompt, as plain text. Optional when config_json contains it.",
      "type": "string",
      "maxLength": 120000
    },
    "config_json": {
      "description": "The agent’s config as a JSON string, exactly as the platform exports it (remove keys first; any left are stripped before checking): a Vapi assistant, a Retell agent and/or LLM (or {\"agent\": ..., \"llm\": ...}), an ElevenLabs agent, or an OpenAI Realtime session or session.update event.",
      "type": "string",
      "maxLength": 300000
    },
    "first_message": {
      "description": "The opening line the agent speaks, when it is not in the config.",
      "type": "string",
      "maxLength": 4000
    },
    "platform": {
      "default": "auto",
      "description": "Which platform the config is for. \"auto\" detects it from the JSON.",
      "type": "string",
      "enum": [
        "auto",
        "vapi",
        "retell",
        "elevenlabs",
        "openai_realtime"
      ]
    },
    "min_severity": {
      "default": "low",
      "description": "Only return findings at or above this severity: critical, high, medium or low.",
      "type": "string",
      "enum": [
        "critical",
        "high",
        "medium",
        "low"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_lint_rules(platform, category)

List every Voice Agent Linter rule with its id, title, default severity, category, what it reads (prompt, config or both) and the platforms it applies to. Filter by platform or category. Static reference, no network access.

입력 스키마

{
  "type": "object",
  "properties": {
    "platform": {
      "description": "Only rules that apply to this platform: vapi, retell, elevenlabs or openai_realtime.",
      "type": "string",
      "enum": [
        "vapi",
        "retell",
        "elevenlabs",
        "openai_realtime"
      ]
    },
    "category": {
      "description": "Only rules in this category.",
      "type": "string",
      "enum": [
        "dates",
        "speech",
        "spelling",
        "disclosure",
        "turn_taking",
        "tools",
        "analysis",
        "voice",
        "call_control",
        "hygiene"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢explain_lint_rule(rule_id)

Explain one Voice Agent Linter rule by id: why it exists, a bad and a good example, the fix, the platforms it applies to, and its sources with the date each was read. Static reference, no network access.

입력 스키마

{
  "type": "object",
  "properties": {
    "rule_id": {
      "type": "string",
      "enum": [
        "no-live-date",
        "date-without-year",
        "date-param-no-format",
        "phone-as-numerals",
        "email-written-raw",
        "url-written-raw",
        "hyphen-range",
        "long-digit-string",
        "markdown-output",
        "no-spelling-protocol",
        "bare-letter-spelling",
        "english-anchors-multilingual",
        "claims-to-be-human",
        "no-ai-disclosure",
        "no-recording-notice",
        "scripted-tool-start",
        "stall-phrases",
        "silent-opener",
        "long-opener",
        "tool-no-description",
        "tool-param-untyped",
        "tool-param-undescribed",
        "tool-required-missing",
        "tool-result-unstated",
        "vapi-nested-item-enum",
        "vapi-flat-analysis-keys",
        "vapi-analysis-plan-off",
        "vapi-analysis-no-transcript",
        "turbo-tts-stutter",
        "no-human-fallback",
        "no-end-call",
        "vapi-max-duration-default",
        "vapi-free-number-outbound",
        "unfilled-placeholder",
        "secret-in-prompt",
        "prompt-length",
        "contradictory-instructions"
      ],
      "description": "The rule id, for example no-live-date, vapi-nested-item-enum or no-ai-disclosure."
    }
  },
  "required": [
    "rule_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 3개