CP.Reactive.Agentic.Loop.Engineer.MCP.Server
1.0.0
See the version list below for details.
{ "servers": { "CP.Reactive.Agentic.Loop.Engineer.MCP.Server": { "type": "stdio", "command": "dnx", "args": ["CP.Reactive.Agentic.Loop.Engineer.MCP.Server@1.0.0", "--yes"], "env": { "DOTNET_SKIP_FIRST_TIME_EXPERIENCE": "1", "DOTNET_NOLOGO": "1" } } } }
.vscode/mcp.json settings file.
dotnet tool install --global CP.Reactive.Agentic.Loop.Engineer.MCP.Server --version 1.0.0
dotnet new tool-manifest
dotnet tool install --local CP.Reactive.Agentic.Loop.Engineer.MCP.Server --version 1.0.0
#tool dotnet:?package=CP.Reactive.Agentic.Loop.Engineer.MCP.Server&version=1.0.0
nuke :add-package CP.Reactive.Agentic.Loop.Engineer.MCP.Server --version 1.0.0
<p align="center"> <img src="images/rale-package-icon.png" alt="RALE logo" width="500"> </p>
Reactive Agentic Loop Engineer
Reactive Agentic Loop Engineer (RALE) is a production-oriented C# Model Context Protocol server scaffold for decomposing large prompts into persisted, goal-bounded work loops.
The server uses .NET 10, ModelContextProtocol 1.4.0, ReactiveUI.Primitives 4.0.0, EF Core SQLite, and TUnit on Microsoft.Testing.Platform.
Quick Install
Click to install in your preferred environment:
Note: These install links are prepared for the intended NuGet package identity
CP.Reactive.Agentic.Loop.Engineer.MCP.Server. If the latest package has not been published yet, use the manual source-build configuration below.
What RALE Provides
- Persisted loops, goals, agents, goal results, and append-only loop events.
- A reactive
Signal<Goal>pipeline for ready-goal emission. - Prompt decomposition that never emits a goal whose
Prompt.Lengthexceeds the configured limit. - Optimistic database concurrency for goal claiming so duplicate execution is rejected.
- Goal pause/resume and complete/fail transitions.
- MCP tools for loop creation, loop inspection, goal claiming, completion, pause, and resume.
- TUnit tests covering decomposition, persistence, ready-goal emission, claiming, completion, and pause/resume.
Repository Layout
src/RALE.Server/
Program.cs
Data/
RALEContext.cs
RaleDatabaseInitializer.cs
Migrations/
Models/
Services/
LoopEngineer.cs
AgentExecutor.cs
PromptDecomposer.cs
Tools/
RaleLoopTools.cs
RaleDtos.cs
tests/RALE.Tests/
images/
rale-icon.png
rale-image.ico
rale-image.png
rale-package-icon.png
rale-logo.png
.mcp/server.json
skills/RALE/SKILL.md
MCP Tools
| Tool | Purpose |
|---|---|
rale_create_loop |
Create a loop and decompose the primary prompt into ordered goals. |
rale_get_loop |
Fetch a loop and its goals. |
rale_list_goals |
List ordered goals for a loop. |
rale_claim_next_goal |
Claim the next ready goal with optimistic concurrency. |
rale_complete_goal |
Persist a result, complete a goal, and emit dependent goals. |
rale_pause_goal |
Pause a pending or in-progress goal. |
rale_resume_goal |
Resume a paused goal and re-emit when ready. |
Database Schema
SQLite tables:
Loops: primary objective, status, token limit, optimistic version.Goals: sequence, description, bounded prompt, JSON dependencies, status, optimistic version.Agents: agent name, JSON capabilities, optional assigned goal.GoalResults: output, JSON metadata, completion time.LoopEvents: append-only audit trail for loop and goal transitions.
The schema is initialized through EF Core migrations at server startup.
Installation
Requirements
- .NET 10 SDK
- An MCP-capable client such as VS Code, Visual Studio, Claude Desktop, or another MCP 1.x host
Install as a .NET tool
Once the NuGet package is published:
dotnet tool install -g CP.Reactive.Agentic.Loop.Engineer.MCP.Server
Then configure your MCP client:
{
"type": "stdio",
"command": "reactive-agentic-loop-engineer-mcp-server"
}
Install via dnx
Use the badge links at the top of this file, or configure manually:
{
"type": "stdio",
"command": "dnx",
"args": ["CP.Reactive.Agentic.Loop.Engineer.MCP.Server@1.*", "--yes"]
}
Manual configuration from source
Clone the repository and configure your MCP client to launch the server from source:
{
"name": "reactive-agentic-loop-engineer-mcp-server",
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/ReactiveAgenticLoopEngineer/src/RALE.Server/RALE.Server.csproj"
]
}
Run from source
dotnet run --project src/RALE.Server/RALE.Server.csproj
By default RALE stores SQLite data at:
src/RALE.Server/bin/<Configuration>/net10.0/data/rale.db
Override it with configuration key ConnectionStrings:RALE.
Test
dotnet test ReactiveAgenticLoopEngineer.slnx -c Debug
Coverage with Microsoft.Testing.Platform:
dotnet test ReactiveAgenticLoopEngineer.slnx -c Debug --results-directory TestResults -- --coverage --coverage-output TestResults/coverage.cobertura.xml --coverage-output-format cobertura
Operational Notes
- Keep logs on stderr for stdio MCP transport.
- Treat MCP tool inputs as untrusted; tool methods validate required values and use
McpExceptionfor client-visible validation errors. - Keep
tokenLimitconservative. RALE currently treats the limit as a character ceiling and exposesEstimateTokensfor a conservative 4-chars-per-token estimate. - Subscribers may receive the same pending goal event more than once; executors must claim before executing. Only one claim succeeds.
- Persisted results and loop events allow crash recovery and audit inspection.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.