MCP 서버

RPCS-1 Agent Tuner & Translation Bridge

io.github.travisbergen2/rpcs1-agent-tuner
AI 및 에이전트 커뮤니케이션 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Analyzes ambiguity, normalizes and rewrites messages, routes intent, and recommends or applies configurations for AI-agent interactions.

calibrate_profile
Calibrate a user’s receiver profile
Build a ReceiverProfile (TI, SG, FT, UE, AR — continuous 0-100, never a category label) from five behavioral forced-choice answers. Call with NO answers to get the five questions to ask the user; call again with their answers (a/b/c per primitive) to get the profile. Store the returned profile JSON in the user’s notes or memory and pass it to render_reply / prepare_prompt on every turn. Deterministic and stateless — nothing is stored server-side. Schema: https://rpcs1.dev/v1/receiver-profile.json
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'answers': {'type': 'object', 'properties': {'AR': {'enum': ['a', 'b', 'c'], 'type': 'string'}, 'FT': {'enum': ['a', 'b', 'c'], 'type': 'string'}, 'SG': {'enum': ['a', 'b', 'c'], 'type': 'string'}, 'TI': {'enum': ['a', 'b', 'c'], 'type': 'string'}, 'UE': {'enum': ['a', 'b', 'c'], 'type': 'string'}}, 'description': 'Chosen option id per primitive. Omit entirely to receive the questions.', 'additionalProperties': False}}, 'additionalProperties': False}
fork
Fork view — how could this message read?
The calibrated ambiguity surface: deterministic structural fork detectors (reference, scope, grouping, compare-vs-choose, polysemy) with character-offset spans, plus per-reading one-line clarifiers the sender can append to lock a reading in. Returns competing readings, an ask-back question, and a forked-answer scaffold. Silent on clean text by contract. Runs the deterministic mirror floor only over MCP (no model). Prefer this over interpret for span-level ambiguity detection: interpret’s entity list is a word-list engine (calibrated 2026-08-15: no discrimination on conversational text) — advisory only.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'The message to analyze for forks.'}, 'rejected': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 12, 'description': 'Reading summaries the user already rejected — never re-offered.'}}, 'additionalProperties': False}
interpret
Interpret ambiguous human input
Detect ambiguity in user messages using the RPCS-1 Signature Ambiguity Framework. Returns AR level (AR0-AR5), confidence, candidate interpretations with scores, clarifying questions, and suggested next step. Use when a user says something vague, passive-aggressive, or underspecified.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'risk': {'enum': ['casual', 'advice', 'high-stakes', 'safety-critical'], 'type': 'string', 'default': 'advice', 'description': 'Risk category for ambiguity threshold.'}, 'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'The message to interpret.'}}, 'additionalProperties': False}
normalize
Normalize fragmented human input
Clean up text with ellipses, fragments, and run-on thoughts into coherent prose. Use when a user types stream-of-consciousness or fragmented input.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'Fragmented text to normalize.'}}, 'additionalProperties': False}
prepare_prompt
Prepare a user’s message before acting on it
The inbound half of the Translation Bridge loop. Takes the user’s raw message (possibly ambiguous, fragmented, or underspecified) plus their ReceiverProfile, and returns the recovered intent, a canonical translation to act on, ambiguity level, and — profile-aware — whether to clarify or commit. Call this before acting on any ambiguous user request. Scope note: its detectors are lexical/structural (vague signals, ambiguous references) — for the commit-vs-clarify DECISION, route_intent (with your own proposed readings) is the authority; when they disagree, follow route_intent.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'risk': {'enum': ['casual', 'advice', 'high-stakes', 'safety-critical'], 'type': 'string', 'default': 'advice', 'description': 'Risk category for the ambiguity threshold.'}, 'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'The user’s raw message.'}, 'profile': {'type': 'object', 'required': ['TI', 'SG', 'FT', 'UE', 'AR'], 'properties': {'AR': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first'}, 'FT': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Filtering Threshold: 100 = explicit and literal, 0 = subtext lands'}, 'SG': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Signal Gain: 0 = flat and factual, 100 = warm and expressive'}, 'TI': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Temporal Integration: 0 = bottom line first, 100 = full context first'}, 'UE': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Update Elasticity: 100 = pushback welcome, 0 = prefers consistency'}}, 'description': 'The user’s ReceiverProfile from calibrate_profile. Shapes clarify-vs-commit behavior.', 'additionalProperties': False}}, 'additionalProperties': False}
recommend_agent_configuration
Recommend AI agent configuration
Diagnose why a deployed AI agent may fail. Takes environmental entropy, predictability, stakes, context horizon, and commitment style, then returns receiver profile values (TI, SG, FT, UE, AR), platform parameters (temperature, top_p, strategy), regime prediction, reasoning, and warnings. Optionally pass target_model (the actual model id) to attach MEASURED per-model receiver posture (E-LIT table): evidence-graded literalness, truth-override boundary, and translation directives. Deterministic, stateless, read-only — does not store past recommendations.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'task': {'type': 'object', 'default': {'domain': 'customer_support', 'task_summary': 'Customer support agent handling refunds, billing disputes, and policy exceptions', 'expected_duration_per_call': 'medium'}, 'properties': {'domain': {'type': 'string', 'default': 'customer_support', 'maxLength': 100, 'minLength': 1, 'description': 'Optional domain such as coding, research, or support.'}, 'task_summary': {'type': 'string', 'default': 'Customer support agent handling refunds, billing disputes, and policy exceptions', 'maxLength': 2000, 'minLength': 1, 'description': 'Plain-language description of what the AI agent does.'}, 'expected_duration_per_call': {'enum': ['short', 'medium', 'long'], 'type': 'string', 'default': 'medium'}}, 'additionalProperties': False}, 'environment': {'type': 'object', 'default': {'stakes': 'high', 'entropy': 'dynamic', 'predictability': 'somewhat_predictable', 'commitment_style': 'cautious', 'context_relevance': 'medium'}, 'properties': {'stakes': {'enum': ['low', 'medium', 'high', 'catastrophic'], 'type': 'string', 'default': 'high', 'description': 'The cost of an incorrect agent action.'}, 'entropy': {'enum': ['stable', 'moderate', 'dynamic', 'chaotic'], 'type': 'string', 'default': 'dynamic', 'description': 'How often the operating environment changes.'}, 'predictability': {'enum': ['highly_predictable', 'somewhat_predictable', 'unpredictable'], 'type': 'string', 'default': 'somewhat_predictable', 'description': 'How predictable changes are when they occur.'}, 'commitment_style': {'enum': ['decisive', 'balanced', 'cautious'], 'type': 'string', 'default': 'cautious', 'description': 'How quickly the agent should commit to an action.'}, 'context_relevance': {'enum': ['short', 'medium', 'long'], 'type': 'string', 'default': 'medium', 'description': 'How far back relevant context usually extends.'}}, 'additionalProperties': False}, 'target_model': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Optional: the actual model id this agent will run on (e.g. "claude-sonnet-4-6", "deepseek-v4-pro"). When it matches a measured per-model receiver entry (E-LIT table), measured translation directives and evidence-graded posture data are attached to platform_parameters. Unknown models fall back to platform-level behavior unchanged.'}, 'target_platform': {'enum': ['anthropic', 'openai', 'open_source', 'generic'], 'type': 'string', 'default': 'anthropic', 'description': 'The platform whose runtime parameters should be recommended.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['receiver_profile', 'platform_parameters', 'predicted_regime', 'reasoning', 'warnings', 'imm_principles_applied', 'confidence'], 'properties': {'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'reasoning': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'predicted_regime': {'enum': ['stable', 'near_oscillation', 'near_overload', 'near_freeze'], 'type': 'string'}, 'receiver_profile': {'type': 'object', 'required': ['TI', 'SG', 'FT', 'UE', 'AR'], 'properties': {'AR': {'type': 'number'}, 'FT': {'type': 'number'}, 'SG': {'type': 'number'}, 'TI': {'type': 'number'}, 'UE': {'type': 'number'}}, 'additionalProperties': False}, 'platform_parameters': {'type': 'object', 'required': ['temperature', 'max_tokens'], 'properties': {'top_p': {'type': 'number'}, 'max_tokens': {'type': 'number'}, 'temperature': {'type': 'number'}, 'retry_strategy': {'enum': ['aggressive', 'moderate', 'minimal'], 'type': 'string'}, 'receiver_traits': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Reliability warnings and named traits for the measured receiver.'}, 'context_strategy': {'enum': ['long_window', 'rolling_summary', 'frequent_grounding'], 'type': 'string'}, 'receiver_evidence': {'type': 'object', 'required': ['model_key', 'display_name', 'grade', 'li2', 'ob', 'fringe', 'measured_on', 'scope'], 'properties': {'cb': {'type': 'number', 'description': 'E-LIT-3 care boundary (1-4): highest emotional-intensity rung at which fenced answers stay bare.'}, 'ob': {'type': 'number', 'description': 'Truth-override boundary rung (0-5).'}, 'sb': {'type': 'number', 'description': 'E-LIT-3 stakes boundary (1-5): highest stakes rung at which format fences still hold. Separate instrument; never pooled with li2/ob.'}, 'li2': {'type': 'number', 'description': 'Fenced literalness, [-1, +1].'}, 'grade': {'enum': ['confirmatory', 'corroboration', 'self_measurement'], 'type': 'string', 'description': 'Evidence grade of the measurement — travels with the data.'}, 'scope': {'type': 'string'}, 'fringe': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Rungs with modal comply-then-correct.'}, 'model_key': {'type': 'string'}, 'measured_on': {'type': 'string'}, 'display_name': {'type': 'string'}}, 'description': 'Present only when target_model has a measured per-model receiver entry.', 'additionalProperties': False}, 'tool_use_strategy': {'enum': ['explicit_confirmation', 'cautious_chaining', 'aggressive', 'fail_fast'], 'type': 'string'}, 'translation_notes': {'type': 'array', 'items': {'type': 'string'}}, 'translation_posture': {'enum': ['direct', 'bridging', 'face_preserving', 'minimal_clarifying'], 'type': 'string'}, 'model_recommendation': {'type': 'string'}, 'system_prompt_additions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'imm_principles_applied': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
render_reply
Render a reply for a specific user’s receiver profile
The outbound half of the Translation Bridge loop. Takes your draft reply plus the user’s ReceiverProfile and returns deterministic rendering instructions (structure, warmth, explicitness, revision posture, ambiguity handling — each with a why-trace). Apply the instructions to your draft before answering. Call this on every reply to a calibrated user.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text', 'profile'], 'properties': {'text': {'type': 'string', 'maxLength': 10000, 'minLength': 1, 'description': 'Your draft reply.'}, 'profile': {'type': 'object', 'required': ['TI', 'SG', 'FT', 'UE', 'AR'], 'properties': {'AR': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first'}, 'FT': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Filtering Threshold: 100 = explicit and literal, 0 = subtext lands'}, 'SG': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Signal Gain: 0 = flat and factual, 100 = warm and expressive'}, 'TI': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Temporal Integration: 0 = bottom line first, 100 = full context first'}, 'UE': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Update Elasticity: 100 = pushback welcome, 0 = prefers consistency'}}, 'description': 'The user’s ReceiverProfile from calibrate_profile.', 'additionalProperties': False}}, 'additionalProperties': False}
rewrite
Rewrite text for a target audience
Get rewrite instructions for adapting text to a specific style: technical, plain, socially_gentle, concise, detailed, or direct. Use when communication needs tone adjustment.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'Text to rewrite.'}, 'style': {'enum': ['technical', 'plain', 'socially_gentle', 'concise', 'detailed', 'direct'], 'type': 'string', 'default': 'plain', 'description': 'Target audience style.'}}, 'additionalProperties': False}
route_intent
Route an ambiguous request: commit, present options, or clarify
Entropy routing over competing interpretations — the model proposes, the deterministic core disposes. YOU generate the candidate readings of the user’s message (3–7 short hypotheses covering the plausible interpretations, INCLUDING likely-typo readings, idiom-vs-literal readings, and domain senses) and pass them as hypotheses, ideally with your own likelihoods (0–1 per reading) AND a paraphrase per reading — the user’s message rewritten unambiguously under that interpretation, so the user can VERIFY intent by recognition before anything commits (one misread prompt skews a whole thread). The router computes the posterior and its normalized entropy T̂ and returns the decision: commit (one reading dominates), commit_with_note (close alternative disclosed), present_options (several readings live), or clarify (ask before acting — open-endedly when nothing discriminates). Thresholds adapt to the user’s ReceiverProfile (AR widens/narrows the commit region; high FT discloses near-ties). This tool is the commit-vs-clarify AUTHORITY in the pipeline. Omitting hypotheses falls back to a generic six-intent PRODUCT-ROUTING starter set — do not use the fallback for interpreting arbitrary sentences. Deterministic, stateless, read-only. Benchmarked: RTEB v1.1 (developer-bench grade; see docs/routing.md).
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'The user’s raw message.'}, 'profile': {'type': 'object', 'required': ['TI', 'SG', 'FT', 'UE', 'AR'], 'properties': {'AR': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Ambiguity Resolution: 100 = commit to best reading, 0 = clarify first'}, 'FT': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Filtering Threshold: 100 = explicit and literal, 0 = subtext lands'}, 'SG': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Signal Gain: 0 = flat and factual, 100 = warm and expressive'}, 'TI': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Temporal Integration: 0 = bottom line first, 100 = full context first'}, 'UE': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Update Elasticity: 100 = pushback welcome, 0 = prefers consistency'}}, 'description': 'The user’s ReceiverProfile from calibrate_profile. Shapes commit-vs-clarify thresholds.', 'additionalProperties': False}, 'hypotheses': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label'], 'properties': {'id': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'cues': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 32, 'description': 'Lexical cues for the built-in scorer; omit when passing likelihoods.'}, 'label': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'prior': {'type': 'number', 'exclusiveMinimum': 0}, 'paraphrase': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'The user’s message REWRITTEN UNAMBIGUOUSLY under this reading. Strongly recommended: when the router asks, the user verifies intent by reading these restatements, not by decoding labels.'}}, 'additionalProperties': False}, 'maxItems': 24, 'minItems': 2, 'description': 'Candidate interpretations. Omit to use a generic six-intent starter set plus a catch-all.'}, 'likelihoods': {'type': 'object', 'description': 'Optional externally computed likelihood per hypothesis id (e.g. model-derived) — replaces the lexical scorer.', 'additionalProperties': {'type': 'number', 'minimum': 0}}}, 'additionalProperties': False}
추가됨
route_intent
2026년 9월 17일 12:52 PM
추가됨
render_reply
2026년 9월 17일 12:52 PM
추가됨
prepare_prompt
2026년 9월 17일 12:52 PM
추가됨
calibrate_profile
2026년 9월 17일 12:52 PM
추가됨
rewrite
2026년 9월 17일 12:52 PM
추가됨
normalize
2026년 9월 17일 12:52 PM
추가됨
fork
2026년 9월 17일 12:52 PM
추가됨
interpret
2026년 9월 17일 12:52 PM
추가됨
recommend_agent_configuration
2026년 9월 17일 12:52 PM