
An operational procedure for agents to follow, expressed in two flavors: - Natural Language: Streamlined, human-readable instructions about how to behave and use the tools. - Mermaid Markdown: A concise flowchart for expected behavior, described in an efficient text format.
Goose extension (MCP Server) that provides tools for the agents to use for tasks and messaging. - Agent Registration: Facilitates agent registration with unique ID assignments and message sending. - Message Management: Stores messages from agents, making them available for retrieval. - Task Management: Project Coordinator role creates and assigns tasks and roles to other agents. - Agent Waiting: Allows connected agents to wait for a specified period before taking another action. - Remote Server: With an MCP Proxy, multiple agents can connect to the same MCP server, necessary for collaboration.
agent: scripts and in the protocol preamble.Agent protocol expressed as a mermaid chart.
See if your favorite LLM can follow it using the agent:chart script to launch your agent!






goose configuregoose-team for namenpm run build - to build the server from source.npm run mcp-proxy to start an SSE proxy to talk to a single instance of the goose-team MCP server,npm run inspector to launch the MCP inspector in a browser list_tools, then add_message, then from Human send a message describing a task or project for the team to work on.npm run agent to launch an agent that will read the protocol and instructions, connect to the goose-team server, assign itself as project coordinator, then begin creating tasks.list_tasks to see the tasks it is adding, npm run agent again and again to launch agents to be assigned tasks by the Project Coordinator.Follow these steps to test if you have a model that will work.
* npm run build - to build the server from source.
* npm run mcp-proxy to start an SSE proxy to talk to a single instance of the goose-team MCP server,
* npm run agent:test This launches an agent hitting the same MCP, but it has a simpler protocol: Say hello in a different language, wait 2 seconds and do it again.
* Here is a video of a successful agent:test run.
Currently, the only models I can get to stay in the loop with are google/gemini-2.0-flash-001 (via openrouter.ai to avoid rate limit shutdowns) and openai/gpt-4o.
Others will fall out of the loop. It is important for the model to follow the protocol and stay in the loop, checking messages, sleeping, particularly for the Project Coordinator.
I suggest doing build,mcp-proxy, and agent:test and if the model you have configured does some work then stops with a "message loop ended" error, you have a model that just isn't very good at using tools. Try different models and see what works. If you get anything other than the above-mentioned models to actually stay on the job, then please let me know!
register_agent
Registers a new agent and provides a unique ID and a randomly assigned color.
Returns: JSON agent with unique id and assigned color.
list_agents
Lists all registered agents, providing an overview of available participants.
Returns: JSON list of all agents connected to the server.
agent_leave
Allows an agent to leave the team.
Returns: JSON of the agent that left.
agent_wait
Allows an agent to wait for a specified number of seconds to pass before performing another action.
seconds: the number of seconds to wait.add_message
Allows an agent to send a new message, storing it within the server.
senderId: ID of the agent sending the message.content: Content of the message.Returns: Confirmation of message addition.
recent_messages
Retrieves the most recent messages stored on the server.
Returns: JSON array containing the three most recent messages.
list_messages
Retrieves all messages stored on the server.
Returns: JSON array containing all messages in the server.
clear_messages
Clears all messages stored on the server.
add_task
Add a task to the server.
description: Description of the task.Returns: The newly added task, with it's assigned id.
list_tasks
Lists all tasks in the server.
Returns: JSON list of all tasks in the server.
assign_task
Assign a task to an agent.
taskId: ID of the task.agentId: ID of the agent to assign the task to.Returns: Confirmation of message addition.
complete_task
Complete a task.
taskId: ID of the task.cd /path/to/GooseTeam/npm installnpm run build/dist/index.jsnpm run stdio:proxy:3001 with endpoint /ssenpm run sse:direct:3001 with endpoint /ssenpm run inspectorTransport Type is set to SSEURL is set to http://localhost:3001/ssenpm run agent:textinstructions/protocol-as-text.mdnpm run agent:chartinstructions/protocol-as-chart.mdnpm run agent:wait:testinstructions/wait-loop-test.mdnpm run formatprettier on the code, adjusting formattingnpm run typechecktsc with args to check and report type issuesnpm run linteslint to non-destructively check for and report syntax problemsnpm run lint:fixeslint to check for and fix syntax problemsnpm run test$ claude mcp add GooseTeam \
-- python -m otcore.mcp_server <graph>