@hantengry/opencode-agile-team
v0.0.8
Published
OpenCode plugin for Agile Team MCP utilities.
Readme
OpenCode Agile Team
Streamlit app for visualizing OpenCode model/agent configs plus a portable OpenCode plugin package for Agile Team MCP utilities.
Streamlit App
Run the visualizer locally:
make runThe Mock Time sidebar writes an ISO-8601 value to ~/.config/opencode/agile_team/mock_time.json. The MCP time tool reads the same file and falls back to real current time when no mock value is configured.
OpenCode Plugin
This repo is prepared as npm package @hantengry/opencode-agile-team.
The plugin entrypoint is opencode/plugin/agile-team-plugin.ts. Its OpenCode config hook registers one local MCP server named agile-team using:
{
"type": "local",
"command": ["uv", "run", "--with", "mcp", "python", "<package>/mcp/server/app.py"],
"enabled": true
}The MCP server entrypoint is mcp/server/app.py. Tool handlers live under mcp/handlers/:
current_time: reports the current time or configured mock time.admin_url: returns the Streamlit admin URL from~/.config/opencode/agile_team/admin.json.
The server uses the official Python MCP SDK (mcp). The npm plugin launches it through uv run --with mcp ... so the Python SDK can be resolved at runtime. Systems testing the npm plugin need uv available on PATH.
When the MCP server starts, it also starts the Streamlit admin app in the background. It chooses the first available localhost port from 8501 upward and writes one status line to stderr, for example Agile Team admin started at http://localhost:8501. Child Streamlit logs and launcher state live under ~/.config/opencode/agile_team/admin.log and ~/.config/opencode/agile_team/admin.json. MCP stdout remains protocol-only.
Local OpenCode Registration
For local testing, register the plugin file into global OpenCode config:
make initThis safely adds the local plugin path to ~/.config/opencode/opencode.json if absent and avoids duplicate plugin entries. Restart OpenCode after running it because OpenCode config is loaded only on startup.
After npm publication, global OpenCode config can use only the package name:
{
"plugin": ["@hantengry/opencode-agile-team"]
}The package plugin registers the MCP server under the hood, so direct global mcp registration is no longer the intended architecture.
Publishing
Inspect package contents without publishing:
make pack-dry-runPublish a patch release while the version remains 0.0.x:
make pushPublish larger bumps explicitly:
make push-minor
make push-majormake push intentionally fails once the package version is no longer 0.0.x; use the explicit minor or major target then. None of these commands should be run unless you intend to publish to npm.
