Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add mcp/owen718/codex-loop-plugin/codex-loop-codex_loopgit clone --depth 1 https://github.com/Owen718/codex-loop-pluginGrade A, and why
codex_loop scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
{
"codex_loop": {
"command": "python3",
"args": [
"-c",
"import json, pathlib, re, runpy, sys; root = pathlib.Path.home() / '.codex' / 'plugins' / 'cache' / 'codex-loop-plugin' / 'codex-loop';\n\ndef _key(p):\n script = p / 'scripts' / 'codex-loop-mcp'\n if not script.is_file():\n return None\n version = p.name\n manifest = p / '.codex-plugin' / 'plugin.json'\n try:\n version = json.loads(manifest.read_text(encoding='utf-8')).get('version') or version\n except Exception:\n pass\n return (tuple(int(part) for part in re.findall(r'\\d+', version)), p.stat().st_mtime)\n\ncandidates = [(key, p) for p in root.iterdir() if p.is_dir() for key in [_key(p)] if key is not None]\nif not candidates:\n raise SystemExit(f'no usable codex-loop-mcp under {root}')\nscript = max(candidates, key=lambda item: item[0])[1] / 'scripts' / 'codex-loop-mcp'\nsys.path.insert(0, str(script.parent))\nrunpy.run_path(str(script), run_name='__main__')"
],
"startup_timeout_sec": 10,
"tool_timeout_sec": 60,
"enabled": true,
"enabled_tools": [
"loop_create",
"loop_list",
"loop_delete",
"loop_update",
"loop_bind_session",
"loop_complete_iteration",
"loop_read_default_prompt"
]
}
}What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 21 lines scan A e70012d73803
codex_loop is an MCP server published in the GitHub repository Owen718/codex-loop-plugin (9 stars, last pushed 4mo ago), licensed MIT. Its token cost is not measured: an MCP server costs its tool schemas, not its config file. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other mcp servers, from other repositories
docs-langchain
MCP server "docs-langchain", hosted remotely at docs.langchain.com, as configured in langchain-ai/langchain.
reference-langchain
MCP server "reference-langchain", hosted remotely at reference.langchain.com, as configured in langchain-ai/langchain.
supabase
Supabase's hosted MCP server: lets the agent manage projects, tables, SQL and migrations. Remote server at mcp.supabase.com.
playwright-test
A high-level API to automate web browsers. Runs locally from the playwright npm package.
mcp-search
MCP server "mcp-search" as configured in thedotmack/claude-mem. Runs const f=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');const E=process.env.CLAUDE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||'';const…
browser-use
Make websites accessible for AI agents. Runs locally from the browser-use Python package.