Search / io.github.andypgray/sliderule
sliderule
L0· runs locallyA .NET architecture checker that enforces one C# spec and renders the same rules for coding agents.
v0.2.0 · active · repository · descriptor JSON · versions
Search / io.github.andypgray/sliderule
L0· runs locallyA .NET architecture checker that enforces one C# spec and renders the same rules for coding agents.
v0.2.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"sliderule": {
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"mcp"
]
}
}
}claude mcp add sliderule -- dnx [email protected] --yes mcp[mcp_servers.sliderule]
command = "dnx"
args = ["[email protected]", "--yes", "mcp"]
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sliderule": {
"type": "local",
"command": [
"dnx",
"[email protected]",
"--yes",
"mcp"
],
"enabled": true
}
}
}{
"mcpServers": {
"sliderule": {
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"mcp"
]
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=sliderule&config=eyJjb21tYW5kIjoiZG54IiwiYXJncyI6WyJTbGlkZVJ1bGUuQ2xpQDAuMi4wIiwiLS15ZXMiLCJtY3AiXX0%3D"
}{
"servers": {
"sliderule": {
"type": "stdio",
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"mcp"
]
}
}
}{
"mcpServers": {
"sliderule": {
"command": "dnx",
"args": [
"[email protected]",
"--yes",
"mcp"
]
}
}
}extensions:
"sliderule":
enabled: true
name: "sliderule"
type: stdio
cmd: "dnx"
args:
- "[email protected]"
- "--yes"
- "mcp"
timeout: 300
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured +updated-1d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
SlideRule.Cli | nuget | 0.2.0 | dnx |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.andypgray/sliderule",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.2.0",
"packages": [
{
"version": "0.2.0",
"transport": {
"type": "stdio"
},
"identifier": "SlideRule.Cli",
"runtimeHint": "dnx",
"registryType": "nuget",
"registryBaseUrl": "https://api.nuget.org/v3/index.json",
"packageArguments": [
{
"type": "positional",
"value": "mcp"
},
{
"type": "positional",
"format": "filepath",
"valueHint": "solution",
"description": "The solution file to check. When it is omitted, the server reads SLIDERULE_SOLUTION_PATH and then walks up from its working directory. A solution passed here beats both. The walk stops at the first directory holding a sliderule.json or exactly one .sln, .slnf or .slnx file. A .slnf next to a .sln or .slnx is not counted. Without a sliderule.json, a solution under src/ is not found, and a directory holding several is passed over. A config generated from this manifest passes none, so where the walk finds no solution, commit a sliderule.json at the repository root. Otherwise give the solution here or in SLIDERULE_SOLUTION_PATH at install time. A server that cannot bind still starts, answers every tool call with the reason, and names the CLI command that reads the same model. That command is spelled through dotnet dnx, because this launch installs no sliderule command."
}
],
"environmentVariables": [
{
"name": "SLIDERULE_SOLUTION_PATH",
"format": "filepath",
"description": "The solution to check when no solution argument is passed. A config generated from this manifest passes no argument, so set this at install time where the server's walk finds no solution. A committed sliderule.json at the repository root binds the same repository with no install-time setting. A server left unbound still starts, and its session works from the CLI alone. That CLI is spelled through dotnet dnx, because this launch installs no sliderule command."
}
]
}
],
"repository": {
"url": "https://github.com/andypgray/sliderule",
"source": "github"
},
"description": "A .NET architecture checker that enforces one C# spec and renders the same rules for coding agents."
}