Simple MCP server for AgentOps with Zed
Project description
Zed AgentOps
- Cross-session handoff (.agent/handoff.md)
- CI/CD-like loop: edit -> verify -> commit -> update handoff
- Test generation as part of the loop (agent adds tests, then verify)
Quick start
./zed-agentops-init.sh project_name
Use zed-agentops-init.sh to scaffold a directory (it creates .rules, .zed/, .agent, and .zed/scripts/verify).
It also auto-appends common entries to .gitignore (including .zed/ and .agent/).
Open the directory in Zed and use the Agent Panel.
Where things live
.rules: project rules auto-injected into Zed Agent context.zed/tasks.json: reusable Tasks (verify, git helpers).zed/scripts/verify: the single entry point for build/test/lint (extend as needed).agent/handoff.md: cross-session handoff (source of truth).agent/session-log.jsonl: optional event log (append-only).agent/checkpoints/: diff checkpoints (json snapshots)src/agentops_mcp_server/: optional MCP server scaffold (Python)
MCP Server (Zed)
The MCP server lives in src/agentops_mcp_server/main.py and exposes a minimal JSON-RPC 2.0 stdio protocol compatible with Zed. It reads one JSON object per line from stdin and writes JSON-RPC responses to stdout. Supported methods include initialize, initialized, tools/list, tools/call, shutdown, and exit.
Run it with:
uv run agentops_mcp_server
Zed (MCP Server):
{
"agentops-server": {
"command": "/opt/homebrew/bin/agentops_mcp_server",
"args": [],
"env": {}
}
}
Tool Settings (settings.json):
"agent": {
"tool_permissions": {
"tools": {
"create_directory": {
"default": "allow"
},
"fetch": {
"default": "allow"
},
"web_search": {
"default": "allow"
},
"terminal": {
"default": "allow"
},
"mcp:agentops-server:handoff.read": {
"default": "allow"
},
"mcp:agentops-server:handoff_read": {
"default": "allow"
},
"mcp:agentops-server:handoff.update": {
"default": "allow"
},
"mcp:agentops-server:handoff_update": {
"default": "allow"
},
"mcp:agentops-server:handoff.normalize": {
"default": "allow"
},
"mcp:agentops-server:handoff_normalize": {
"default": "allow"
},
"mcp:agentops-server:session.log_append": {
"default": "allow"
},
"mcp:agentops-server:session_log_append": {
"default": "allow"
},
"mcp:agentops-server:session.capture_context": {
"default": "allow"
},
"mcp:agentops-server:session_capture_context": {
"default": "allow"
},
"mcp:agentops-server:session.checkpoint": {
"default": "allow"
},
"mcp:agentops-server:session_checkpoint": {
"default": "allow"
},
"mcp:agentops-server:session.diff_since_checkpoint": {
"default": "allow"
},
"mcp:agentops-server:session_diff_since_checkpoint": {
"default": "allow"
},
"mcp:agentops-server:repo.verify": {
"default": "allow"
},
"mcp:agentops-server:repo_verify": {
"default": "allow"
},
"mcp:agentops-server:repo.commit": {
"default": "allow"
},
"mcp:agentops-server:repo_commit": {
"default": "allow"
},
"mcp:agentops-server:repo.status_summary": {
"default": "allow"
},
"mcp:agentops-server:repo_status_summary": {
"default": "allow"
},
"mcp:agentops-server:repo.commit_message_suggest": {
"default": "allow"
},
"mcp:agentops-server:repo_commit_message_suggest": {
"default": "allow"
},
"mcp:agentops-server:tests.suggest": {
"default": "allow"
},
"mcp:agentops-server:tests_suggest": {
"default": "allow"
},
"mcp:agentops-server:tests.suggest_from_failures": {
"default": "allow"
},
"mcp:agentops-server:tests_suggest_from_failures": {
"default": "allow"
},
"mcp:agentops-server:commit_if_verified": {
"default": "allow"
},
"mcp:agentops-server:log_append": {
"default": "allow"
}
}
},
"default_model": {
"provider": "copilot_chat",
"model": "gpt-5.2-codex"
}
},
MCP tools:
handoff.read(handoff_read)handoff.update(handoff_update)handoff.normalize(handoff_normalize)session.log_append(session_log_append)session.capture_context(session_capture_context)session.checkpoint(session_checkpoint)session.diff_since_checkpoint(session_diff_since_checkpoint)repo.verify(repo_verify)repo.commit(repo_commit)repo.status_summary(repo_status_summary)repo.commit_message_suggest(repo_commit_message_suggest)tests.suggest(tests_suggest)tests.suggest_from_failures(tests_suggest_from_failures)- Legacy:
handoff_update,commit_if_verified,log_append
Usage notes:
- Call
tools/listto enumerate tools. Example request:{"jsonrpc":"2.0","id":1,"method":"tools/list"} - Call
tools/callto invoke a tool. Example request:{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"handoff.update","arguments":{"summary":"Wrap up MCP tools","decisions":"Added structured handoff updates","next_actions":"Add tests for handoff parsing"}}} - Successful responses include a
result; failures include anerrorwithcodeandmessage.
Then register the MCP server in Zed and grant tool permissions as you prefer.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentops_mcp_server-0.0.1.tar.gz.
File metadata
- Download URL: agentops_mcp_server-0.0.1.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66efd71ee14864400578cb86bbeb7814ddd3b34d9d0f6b96b56e4c0d4853ab81
|
|
| MD5 |
ead3d6ad084d94abfcd776509a83ff2b
|
|
| BLAKE2b-256 |
cce077e1f1c6d5bd86887f9cf9285c1a8b0816a29678db5a13b98d14e5670068
|
File details
Details for the file agentops_mcp_server-0.0.1-py3-none-any.whl.
File metadata
- Download URL: agentops_mcp_server-0.0.1-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa1ae8dde0d2a4f4f6850f97e2251d96e2e67b7ba639dc1fefd0eca54574fb8e
|
|
| MD5 |
6ff956648b5fa30f819c2a447a6a6a54
|
|
| BLAKE2b-256 |
9eecf3aef64239d31b315898729fa45ca76a024a755f823cecec45c3dba6ce85
|