Ouroboros
BLOCKgrade F · trust 33/100Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.
agent osagentic aiai agentai coding agentclaude codeclicodexcoding agentOverview
From the repository's own README, as read at the audited commit.
<!-- mcp-name: io.github.Q00/ouroboros --><p align="right"> <strong>English</strong> | <a href="./README.ko.md">한국어</a> | <a href="./README.zh-CN.md">简体中文</a></p><p align="center"> <br/> ◯ ─────────── ◯ <br/><br/> <img src="./docs/images/ouroboros.png" width="420" alt="Ouroboros"> <br/><br/> <strong>O U R O B O R O S</strong> <br/><br/> ◯ ─────────── ◯ <br/></p><p align="center"> <strong>It gets smarter on its own. We just hold the line.</strong> <br/> <sub>Skip the prompt engineering. The agent runs, fails, and gets smarter every generation. The grading command and expected result never make it into the success contract we hand it.</sub> <br/> <sub>The <strong>Agent OS</strong> for replayable AI coding workflows</sub></p><p align="center"> <a href="https://github.com/Q00/ouroboros"><img src="https://img.shields.io/github/stars/Q00/ouroboros?color=yellow&logo=github&label=stars" alt="GitHub stars"></a> <a href="https://pypi.org/project/ouroboros-ai/"><img src="https://img.shields.io/pypi/v/ouroboros-ai?color=blue" alt="PyPI"></a> <a href="https://github.com/Q00/ouroboros/actions/workflows/test.yml"><img src="https://img.shields.io/github/actions/workflow/status/Q00/ouroboros/test.yml?branch=main" alt="Tests"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a> <a href="https://github.com/sponsors/Q00"><img src="https://img.shields.io/github/sponsors/Q00?logo=githubsponsors&color=EA4AAA&label=sponsors" alt="GitHub Sponsors"></a></p><p align="center"> <a href="https://trendshift.io/repositories/26008?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-26008" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/26008" alt="Q00%2Fouroboros | Trendshift" width="250" height="55"/></a></p><p align="center"> <a href="#quick-start">Quick Start</a> · <a href="#why-ouroboros">Why</a> · <a href="#what-you-get">Results</a> · <a href="#the-loo
Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add habit-tracker-cli --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env CACHED_TEST_API_KEY=${CACHED_TEST_API_KEY} --env COPILOT_TOKEN=${COPILOT_TOKEN} --env GH_TOKEN=${GH_TOKEN} -- npx -y [email protected]{
"mcpServers": {
"habit-tracker-cli": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"CACHED_TEST_API_KEY": "${CACHED_TEST_API_KEY}",
"COPILOT_TOKEN": "${COPILOT_TOKEN}",
"GH_TOKEN": "${GH_TOKEN}"
}
}
}
}Exposed tools (3) 3 read · 0 write · 0 destructive
| Tool | Risk | Description |
|---|---|---|
identity | read | Return any JSON value unchanged. |
identity-null | read | Return JSON null unchanged. |
inspect_payload | read | return payload |
Details
- Source
- q00/ouroboros
- npm
habit-tracker-cli@1.0.0- PyPI
ouroboros-ai- Transports
- sse · stdio · streamable-http
- Credentials it reads
ANTHROPIC_API_KEYCACHED_TEST_API_KEYCOPILOT_TOKENGH_TOKENGITHUB_TOKENGOOGLE_API_KEYOPENAI_API_KEYOPENROUTER_API_KEYOUROBOROS_POSTHOG_API_KEYSOME_VENDOR_API_KEY- License
- MIT
- Stars
- 5,930 · pushed 0d ago
Trust audit
Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (9 observation(s))
- Network
- declared (11 observation(s))
- Shell
- declared (9 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
loaded = yaml.load(snapshot.contents.decode("utf-8"), Loader=_UniqueKeyLoader)r"(?:command(?:\s+(?:--|-p|-v|-V))*\s+)?eval(?:\s|$)",
"eval(","exec(",".netrc",
"id_rsa",
"id_ed25519",
"id_ecdsa",
status), keep waiting. Do not tell the user to call job tools themselves.
[--append-system-prompt <SYSTEM>] [--tools <TOOLS>] [--no-tools] <PROMPT>
[--append-system-prompt <SYSTEM>] [--tools <TOOLS>] [--no-tools] <PROMPT>
value = getattr(importlib.import_module(module_name), name)
_lateral_personas = importlib.import_module(f"{__name__}.lateral_personas")_pm_schemas = importlib.import_module(f"{__name__}.pm_schemas")_tool_specs = importlib.import_module(f"{__name__}.tool_specs")_interview_schemas = importlib.import_module(f"{__name__}.interview_schemas")const baseUrl = process.env.DSH_URL || 'http://127.0.0.1:3081';
assert validate_api_key_format("sk-ant-12345678901234567890", provider="anthropic") is Trueapi_key = "cached-client-credential"
adapter = AnthropicAdapter(api_key="constructor-credential", max_retries=0)
secret = "test-secret-that-must-not-escape"
"--token=ghp_thisIsClearlyASecretValue123456789", # equals form
raw_token = "ghp_thisIsClearlyASecretValue123456789"
raw_github_token = "ghp_thisIsClearlyASecretValue123456789"
"user_token": "xoxb-supersecret",
Gates applied: instruction_override, no_behavioural_pass.
Audited 2026-09-16 · audit v0.4.0 · source sha 6bd55d5c8f0c · full audit: observations/trust-audit/mcp-server/q00__ouroboros.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-16 | 6bd55d5c8f0c | BLOCK | F | 33 | first audit |
Alternatives
Other servers in the same categories, safer ones first.
Questions
What is the Ouroboros MCP server?
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.
What tools does Ouroboros expose?
3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Ouroboros safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (33/100) and found 11 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Ouroboros need?
It reads ANTHROPIC_API_KEY, CACHED_TEST_API_KEY, COPILOT_TOKEN, GH_TOKEN, GITHUB_TOKEN, GOOGLE_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, OUROBOROS_POSTHOG_API_KEY and SOME_VENDOR_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Ouroboros run?
It speaks sse, stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as habit-tracker-cli at 1.0.0.
How current is this page?
The grade is for one exact copy of the source (6bd55d5c8f0c), read on 2026-09-16. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-16 · job trust-audit-2026-09-16