RPCS-1 Agent Tuner & Translation Bridge
This server provides a stateless, read-only tool for diagnosing and tuning AI agent configurations based on their operating environment.
You can use it to:
Diagnose agent-environment fit: Detects mismatch risks and predicts the agent's operational regime —
stable,near_oscillation,near_overload, ornear_freezeGet concrete LLM parameter recommendations: Returns
temperature,max_tokens,top_p, and runtime settings tailored to a specific task and environmentReceive platform-specific configurations for Anthropic, OpenAI, open-source, or generic platforms, including:
Model recommendations
Retry strategy (
aggressive,moderate,minimal)Context strategy (
long_window,rolling_summary,frequent_grounding)Tool use strategy (
explicit_confirmation,cautious_chaining,aggressive,fail_fast)System prompt additions
Compute a receiver profile: Provides RPCS-1 values (TI, SG, FT, UE, AR) grounded in IMM principles
Understand the reasoning: Each recommendation cites applied IMM principles (e.g., Pred-09-5) and includes a confidence level (
high,medium,low)Receive warnings: Highlights potential configuration risks or edge cases
The server is read-only and stateless — it does not store, list, or update past recommendations.
RPCS-1 SDK — AI Agent Tuner
Start with the free tuner: find your AI agent’s likely failure mode, get runtime settings to try, and validate them with a harder case.
RPCS-1 helps teams make agent settings deliberate rather than guessed. Describe the task, change rate, predictability, stakes, relevant context horizon, and commitment style; it returns a five-primitive profile, a runtime recommendation, and a next test. The suite also includes SendRight for catching ambiguous prompts before handoff and the Translation Bridge for profile-aware communication rendering.
Repository Structure
rpcs1-sdk/
├── packages/core/ # TypeScript engine (@rpcs1/core): tuner + translation layer + receiver-profile intake
├── packages/web/ # Next.js app serving rpcs1.dev (tuner, translator, docs, Stripe, /mcp endpoint)
├── packages/mcp-server/ # Standalone STDIO MCP server (what Glama and MCP clients build)
├── sdk/python/ # Python SDK (pip install rpcs1)
├── skills/ # Canonical agent skill package (HF-HATP v2.0 SKILL.md)
├── docs/ # Architecture, deployment, launch playbook
└── .github/workflows/ # CI/CDRelated MCP server: bluemouse
Quick Start — Python SDK
pip install rpcs1from rpcs1 import recommend_params
config = recommend_params(
task_description="Customer support agent",
environment_entropy="dynamic",
environment_predictability="somewhat_predictable",
stakes="high",
target_platform="anthropic",
)
print(config.platform_parameters.temperature) # e.g. 0.52
print(config.predicted_regime) # 'stable'
print(config.reasoning) # cites Matching PrincipleQuick Start — TypeScript Core
import { recommend } from '@rpcs1/core';
const rec = recommend({
task: { task_summary: 'Customer support agent' },
environment: {
entropy: 'dynamic',
predictability: 'somewhat_predictable',
stakes: 'high',
context_relevance: 'medium',
commitment_style: 'cautious',
},
target_platform: 'anthropic',
});
console.log(rec.platform_parameters.temperature);
console.log(rec.predicted_regime);Development
# Install dependencies
npm ci --include=optional
# Build and test TypeScript core
npm run build --workspace=@rpcs1/core
npm run test --workspace=@rpcs1/core
# Test Python SDK
cd sdk/python
pip install -e ".[dev]"
pytest -vWeb environment variables are documented in packages/web/.env.example
(Stripe, Resend, license signing, rate limits). MCP production controls are listed under
Production controls below.
The web app deploys to Vercel on Node 24 (region iad1); pushes to main trigger the production deployment.
The Matching Principle
The SDK implements Pred-09-5 from IMM Paper 9:
Stable receivers in an environment with entropy H satisfy TI ~ 1/H.
High-entropy environments → short attention windows (TI ~ 10). Low-entropy environments → long attention windows (TI ~ 90).
Every parameter recommendation traces back to this principle or the basin stability geometry (oscillation/overload/freeze boundary conditions).
Web App
Free Tuner: https://rpcs1.dev/tuner
SendRight: https://rpcs1.dev/send
Translation Bridge: https://rpcs1.dev/translator
Calibrate a communication-preference profile: https://rpcs1.dev/calibrate
The site can also explain the same product facts in technical, executive, plain-language, or literal-and-precise registers. The explanation changes; pricing, deliverables, and limitations do not.
Brand — Explicit Formula (product) / RPCS-1 (mechanism)
The site fronts one consumer product: Explicit Formula — the box on the
landing page. Explicit: says exactly what it means (the product's one job);
formula: a repeatable method. The wordmark is an advisory-sticker homage
(components/StickerLogo.tsx), deliberately distinct from the trademarked
RIAA label.
The mechanism brand — RPCS-1, the receiver engine, its laws, and its scorecard — is unchanged and renders as "Powered by RPCS-1" in the footer. House rule: outcome on the wrapper, mechanism one click deep.
The brand is a token:
packages/web/lib/brand.ts. Renaming the product is one env var (NEXT_PUBLIC_BRAND_NAME) or one line — no other code changes.Every station that used to compete for the nav (SendRight, Bridge, Translator, Calibrate, Tuner, R&D, …) stays live at its original route and is indexed at /labs (
packages/web/lib/labs.ts).The consumer domain follows the deployment: set
NEXT_PUBLIC_APP_URLwhen it goes live. rpcs1.dev remains the mechanism home either way.
SendRight (Interpretation Mirror + Hand-off)
SendRight is the type-and-send front door: type a prompt the way you'd say it out loud, see the readings it actually supports, lock in the one you meant, and hand it to your own model app with one click.
Modules (packages/core):
mirror(text)— deterministic fork detectors (no ML, no API calls). Returns{ clean, readings[], ambiguousSpans[] }. Detectors: compare-or-choose ("X or Y?" questions without an explicit verb), grouping forks ("A and B or C"), scope forks ("only ... and ..."), dangling pronouns, bare objects ("fix it"), external references ("the above"). Contract: silent on clean prompts — zero-fork controls intests/mirror.test.tsenforce it. Pure function, callable from any front end (web box, NL2Build, CLI).applyReading(text, clarifier)— appends the chosen reading's clarifier so the locked interpretation travels with the prompt.buildHandoff(vendor, prompt)/listVendors()— per-vendor capability table for opening the user's own model app with the prompt pre-filled. Prefill URL parameters are undocumented vendor behavior and churn without notice; each entry carries averifieddate and must be re-checked at release. Verified 2026-07-25: ChatGPT, Claude, Perplexity, Grok support URL prefill; Gemini and Copilot are clipboard-fallback only. Logged-out users may lose the prefill at login. All vendors degrade gracefully to clipboard.
Web: /send (packages/web/app/send) renders the box via
components/SendBox.tsx — mirror runs client-side (debounced, zero network);
the hand-off happens in the user's own app. SendRight never makes the model
call and never sees the answer.
Feasibility boundary (honest scope): reasoning-stream digests and mid-generation stop/realign are only possible where rpcs1 itself owns the API call (the fan-out / power-user mode, not yet shipped). They are structurally impossible in vendor chat UIs and via the MCP surface — SendRight's hand-off path intentionally trades those away for zero keys, zero cost, and zero data custody.
MCP Server
RPCS-1 is also available as a public, anonymous, read-only MCP server:
https://rpcs1.dev/mcpIt exposes eight read-only tools across four families:
recommend_agent_configuration— diagnose an AI agent against environmental entropy, predictability, stakes, context horizon, and commitment style; receive runtime settings to try and a next test.interpret,normalize, andrewrite— detect ambiguity, turn fragmented text into coherent prose, and return style-specific rewrite instructions.route_intent— entropy routing over competing interpretations of a message: the calling model proposes candidate readings (paraphrases and priors); the deterministic router computes the posterior and decides commit, present options, or clarify. The commit-vs-clarify authority in the pipeline.calibrate_profile,prepare_prompt, andrender_reply— create a continuous communication-preference profile, recover intended meaning before an action, and render a reply for that profile.
Translation Layer
"Say what you mean. Hear what they meant."
The Translation Bridge treats the profile as a transportable parameter, not a category label. The five-question
Calibrate flow measures communication preferences for rendering only; it is not a psychological assessment or diagnosis.
prepare_prompt / render_reply use that profile on the inbound and outbound sides of an interaction. The canonical
agent-facing specification lives at skills/rpcs1-translation-layer/SKILL.md.
Tuner examples
The first useful call is a support copilot under live pressure:
Use recommend_agent_configuration to diagnose my support copilot.
Task: refund and billing dispute triage
Environment: dynamic, somewhat_predictable, high stakes
Context relevance: medium
Commitment style: cautious
Target platform: anthropicThe output should lead with the five-primitive profile, failure-risk score, predicted regime, runtime posture, and next test to run.
The second useful call is a coding agent in a changing repository:
Use recommend_agent_configuration to diagnose my coding agent.
Task: inspect a changing repository, edit files, run tests, and open a pull request
Environment: moderate, somewhat_predictable, medium stakes
Context relevance: long
Commitment style: balanced
Target platform: openaiThe output should still lead with the five-primitive profile, failure-risk score, predicted regime, runtime posture, and next test to run.
Connection details and client compatibility notes are available at https://rpcs1.dev/docs/mcp. Practical coding, support, and research examples are available at https://rpcs1.dev/docs/examples.
Hyperagent uses the fixed public OAuth client hyperagent-rpcs1 with PKCE and the registered
callback https://hyperagent.com/api/mcp-servers/callback. No client secret is required.
The MCP surface exposes the deterministic agent-tuning workflow alongside read-only translation and per-user rendering tools. New tools should be added only after their scoring or behavior contracts are implemented and tested in the core package.
Discovery metadata:
OpenAPI: https://rpcs1.dev/openapi.json
LLM overview: https://rpcs1.dev/llms.txt
MCP Registry manifest:
server.json
Production controls:
MCP_HOURLY_LIMITcontrols per-instance MCP throttling (default:120requests per IP/hour).MCP_MAX_BODY_BYTESlimits request bodies (default:65536bytes).MCP_ALLOWED_HOSTSis a comma-separated production host allowlist.MCP_ALLOWED_ORIGINSis an optional comma-separated browser-origin allowlist. Leave it blank to reject cross-origin browser requests.MCP_OAUTH_JWT_SECRETsigns short-lived OAuth authorization codes and access tokens./api/healthreports deployment and MCP readiness metadata.
For globally consistent abuse protection across Vercel instances, configure a Vercel Firewall
rate-limit rule for /mcp. The in-process limiter is defense in depth, not a distributed quota.
Glama Docker checks should build and launch the local STDIO server, not connect to the hosted
https://rpcs1.dev/mcp endpoint. Use this build spec:
{
"buildSteps": [
"npm ci --include=optional",
"npm run build --workspace=@rpcs1/core",
"npm run build --workspace=@rpcs1/mcp-server"
],
"cmdArguments": [
"mcp-proxy",
"--",
"node",
"packages/mcp-server/dist/index.js"
],
"environmentVariablesJsonSchema": {
"type": "object",
"properties": {},
"required": []
},
"placeholderArguments": {}
}License
MIT
Available Tools
4 toolsinterpretInterpret ambiguous human inputARead-onlyIdempotentInspect
Detect ambiguity in a user message and score candidate interpretations using the RPCS-1 Signature Ambiguity Framework. Returns literal summary, implied meaning, confidence, AR level (AR0-AR5), ambiguities, clarifying questions, and per-candidate scores (IC, UE, EC, NM, SG, TI). Use when a user says something vague, passive-aggressive, or underspecified.
| Name | Required | Description | Default |
|---|---|---|---|
| risk | No | Risk category for ambiguity threshold. | advice |
| text | Yes | The message to interpret. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds value by detailing return fields, including confidence and AR levels, which go beyond the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then specifics on return. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description compensates by listing return fields. Provides sufficient context for ambiguity detection task, but could elaborate on the risk parameter's effect on interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description does not add additional meaning for the parameters beyond listing return details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'detect ambiguity' and the resource 'user message', specifies the RPCS-1 framework, and lists return fields. This differentiates it from siblings like normalize, recommend_agent_configuration, and rewrite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when a user says something vague, passive-aggressive, or underspecified.' Provides clear usage context but does not mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalizeNormalize fragmented human inputARead-onlyIdempotentInspect
Clean up text with ellipses, fragments, and run-on thoughts into coherent prose. Returns the number of fragments detected and the joined version. Use when a user types stream-of-consciousness or fragmented input.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Fragmented text to normalize. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by stating it returns the number of fragments detected and the joined version. Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description aligns with them, adding no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the key purpose and ending with a usage guideline. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no nested objects, the description covers the purpose, usage, and return value (fragments count and joined version) sufficiently. The annotations and schema cover the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'text' has a description in the schema, and schema coverage is 100%. The description does not add additional meaning beyond the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it normalizes fragmented text into coherent prose, specifying what it does. However, it does not explicitly differentiate from the sibling tool 'rewrite', which could be seen as similar. The verb 'normalize' and resource 'fragmented human input' are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when a user types stream-of-consciousness or fragmented input,' providing a clear use case. It does not mention when not to use or provide alternatives to the sibling tools, but the guidance is adequate for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_agent_configurationRecommend AI agent configurationARead-onlyIdempotentInspect
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 to attach MEASURED per-model receiver posture (E-LIT table). Deterministic, stateless, read-only — does not store past recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | ||
| environment | No | ||
| target_model | No | Optional: the actual model id this agent will run on (e.g. "claude-sonnet-4-6"). 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. | |
| target_platform | No | The platform whose runtime parameters should be recommended. | anthropic |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | Yes | |
| reasoning | Yes | |
| confidence | Yes | |
| predicted_regime | Yes | |
| receiver_profile | Yes | |
| platform_parameters | Yes | |
| imm_principles_applied | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, destructiveHint. Description adds 'Deterministic, stateless, read-only — does not store past recommendations,' which reinforces and extends the annotation context. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, then input/output summary, then behavioral traits. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters with nested objects, output schema exists), the description covers purpose, inputs, outputs, and behavioral traits adequately. Annotations and return types are well specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% and most fields have individual descriptions. The tool description lists input categories but does not add new meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool diagnoses why a deployed AI agent may fail and returns configuration recommendations, specifying input factors and output structure. It distinguishes itself from sibling tools (interpret, normalize, rewrite) which are text-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for diagnosing agent failure but lacks explicit guidance on when to use vs alternatives or when not to use. No comparison with siblings or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rewriteRewrite text for a target audienceARead-onlyIdempotentInspect
Get rewrite instructions for adapting text to a specific audience style: technical, plain, socially_gentle, concise, detailed, or direct. Pass the result to an LLM with the rewrite_instructions as the system prompt. Use when communication needs tone adjustment.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to rewrite. | |
| style | No | Target audience style. | plain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) indicate the tool is safe and side-effect-free. The description adds behavioral context by explaining the output is meant to be used as a system prompt for an LLM, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences: the first defines the purpose and lists style options, the second explains usage and when to apply. No unnecessary words, fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description tells the agent exactly what to do with the result (use as system prompt). With only two parameters and simple return type, this is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (text and style). The description lists the allowed style values, but these are already in the enum. No additional semantic value is added beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get rewrite instructions for adapting text to a specific audience style.' It lists the available styles and distinguishes from sibling tools like 'interpret' and 'normalize' by focusing on style adaptation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use ('Use when communication needs tone adjustment') and how to use the output ('Pass the result to an LLM with the rewrite_instructions as the system prompt'). It does not mention alternatives or when not to use, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: recommend_agent_configuration handles diagnostics, interpret detects ambiguity, normalize cleans text, and rewrite adjusts tone. No overlap in functionality.
All tool names follow a consistent verb_noun pattern (recommend_agent_configuration, interpret, normalize, rewrite), with descriptive suffixes where needed. No mixing of conventions.
Four tools is a well-scoped set for an agent tuner and translation bridge, covering diagnostics, ambiguity resolution, text normalization, and style adaptation without excess or deficiency.
The tool set lacks a direct translation feature despite the server name. Additionally, the rewrite tool only provides instructions, not actual output, creating a dependency on an external LLM. Core operations are present but notable gaps exist.
Maintenance
Related MCP Connectors
Deterministic decision layer for autonomous agents. Reproducible PROCEED, REVIEW, SKIP verdicts.
Jailbreak-proof AI guardrails. Automated Reasoning SMT solver, not an LLM. ZK proofs included.
Same functionality, consuming only 1/20 of the context window tokens.
Deterministic runtime safety for AI agents: scan PII, gate tool actions, verify LLM output.
Related MCP Servers
- AlicenseBqualityBmaintenanceA metacognitive pattern interrupt system that helps prevent AI assistants from overcomplicated reasoning paths by providing external validation, simplification guidance, and learning mechanisms.2133502MIT
- AlicenseCqualityCmaintenanceBlueMouse is the "Prefrontal Cortex" for LLMs. It uses a 180k+ failure pattern database to validate code logic before execution, acting as a rigorous Quality Gate to prevent hallucinations and unsafe operations.8109AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceAutomatically saves and restores project state when Claude threads hit token limits, ensuring seamless conversation continuity and preventing project fragmentation with intelligent name validation.64MIT
- AlicenseNot gradedqualityDmaintenanceDetects and prevents infinite agent loops via circuit breakers, pattern detection, and recovery recommendations.63MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/travisbergen2/rpcs1-sdk'
If you have feedback or need assistance with the MCP directory API, please join our Discord server