Syrin

Syrin is a runtime intelligence system for MCP servers.
It helps developers see, validate, and reason about MCP execution before systems reach production.
Documentation: https://docs.syrin.dev
The Problem
Building MCP servers today usually looks like this:
- Define tools and prompts
- Connect an LLM
- Run the server
- Hope execution behaves as expected
When things go wrong:
- Tools are called for unclear reasons
- Behaviour changes between runs
- Debugging relies on logs and guesswork
- Contract issues surface only after failures
Most problems are discovered after deployment.
Installation
Quick start
npx @ankan-ai/syrin init
Global install
npm install -g @ankan-ai/syrin
Local install (recommended for CI)
npm install @ankan-ai/syrin
Requirements:
- Node.js ≥ 18
- npm ≥ 9
The Syrin Way
Syrin changes the workflow.
Instead of guessing how MCP behaves, you inspect and validate it explicitly.
Before:
Write tools → Connect LLM → Run server → Debug via logs
With Syrin:
Define tools
→ Analyse contracts
→ Validate protocol
→ Inspect behaviour interactively
→ Enable execution with confidence
Syrin does not replace MCP.
It makes MCP systems understandable and testable.
What Syrin Does
- Validates MCP protocol compliance
- Analyses tool contracts statically
- Lets you interact with MCP servers using real LLMs
- Shows which tools are proposed and why
- Prevents accidental execution by default
- Surfaces configuration and contract errors early
Key Capabilities
Static Tool Contract Analysis (syrin analyse)
LLMs rely entirely on tool contracts.
If contracts are vague or incomplete, behaviour becomes unreliable.
syrin analyse inspects:
- Tool definitions
- Parameter schemas
- Description clarity
- Implicit dependencies between tools
This catches issues before runtime.
syrin analyse
This is especially useful in CI:
syrin analyse --ci
Interactive Execution Inspection (syrin dev)
syrin dev provides a governed chat interface for MCP servers.
- Preview tool calls before execution
- Execute tools only when explicitly enabled
- Switch between LLM providers
- Inspect large tool outputs safely
syrin dev
Enable execution only when ready:
syrin dev --exec
Protocol and Configuration Validation
Before running anything, Syrin validates assumptions.
syrin doctor
syrin test
These commands ensure:
- Configuration is valid
- Environment variables are set
- MCP protocol is followed correctly
Typical Workflow
syrin init # Initialise configuration
syrin doctor # Validate setup
syrin analyse # Check tool contracts
syrin test # Validate MCP protocol
syrin dev # Inspect behaviour interactively
This workflow is designed to catch issues before production.
Commands Overview
| Command | Purpose |
|---|---|
syrin init | Initialise a Syrin project |
syrin doctor | Validate configuration and environment |
syrin analyse | Static analysis of MCP tool contracts |
syrin test | Validate MCP protocol compliance |
syrin list | Inspect tools, resources, and prompts |
syrin dev | Interactive execution inspection |
Full documentation: https://docs.syrin.dev/commands
Configuration
Syrin uses a single configuration file:
.syrin/config.yaml
This file defines:
- Transport type (
stdioorhttp) - MCP server connection
- Allowed LLM providers
Configuration reference: https://docs.syrin.dev/configuration
Transport Support
- stdio – Syrin manages the MCP server process (recommended for development)
- http – Syrin connects to an existing server (common in production)
Transport documentation: https://docs.syrin.dev/configuration/transport
LLM Providers
Supported providers:
- OpenAI
- Claude (Anthropic)
- Ollama (local models)
LLMs propose actions.
Syrin governs execution.
Provider configuration: https://docs.syrin.dev/configuration/llm
Links
- Documentation: https://docs.syrin.dev
- GitHub: https://github.com/ankan-labs/syrin
- Issues: https://github.com/ankan-labs/syrin/issues
- npm: https://www.npmjs.com/package/@ankan-ai/syrin
License
ISC License. See LICENSE for details.
Made with ❤️ by Ankan AI Labs.