MCP Task Board Playground
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Task Board PlaygroundCreate a task titled Review MCP spec."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Task Board Playground
A TypeScript playground for the Model Context Protocol (MCP): a small task-board MCP server (stdio) plus a terminal host that talks to that server and to a local Ollama model.
Use it to learn how MCP tools, resources, and prompts work end-to-end — from decorator registration on the server, through a stdio client, into an LLM tool loop in the CLI.
What you get
Piece | Role |
MCP server ( | Exposes task-board tools, one resource, one prompt over stdio |
CLI host ( | Spawns the server, connects to Ollama, chat + |
Domain ( | In-memory board; knows nothing about MCP or LLMs |
you (terminal)
│
▼
CLI host ──HTTP──► Ollama (/api/chat + tools)
│
│ stdio (StdioClientTransport)
▼
MCP server ──► TaskTools ──► TasksServiceRelated MCP server: mcp-toy
Requirements
Node.js ≥ 22
Ollama running locally, with a tool-capable model (e.g.
llama3.1)
ollama serve
ollama pull llama3.1Phi-3 and similar models that do not support tools will return HTTP 400 when the CLI sends tool definitions.
Quick start
npm install
npm startOn startup the CLI:
Spawns
src/stdio/main.stdio.tsas an MCP child processLists tools / resources / prompts from the server
Pings Ollama (
OLLAMA_HOST, defaulthttp://127.0.0.1:11434)Opens a raw-mode REPL (
you>)
Environment
Variable | Default | Meaning |
|
| Ollama base URL |
|
| Chat model (must support tools for free-text chat) |
$env:OLLAMA_MODEL="llama3.1"
npm startCLI usage
Live / and @ menus
At an empty you> prompt:
Press
/→ inline menu of MCP prompts (filter as you type; arrows + Enter)Press
@→ inline menu of MCP resources
Mid-line incomplete @… still works after Enter (picker / expand). Escape dismisses the current menu token.
Chat (Ollama + tools)
Type a normal sentence and press Enter. The host sends MCP tool schemas to Ollama, executes tool_calls via the MCP client (up to 8 rounds), and prints the final answer.
Examples:
list my todos
create a task titled Fix the retry loop for islam@ resource mentions
@name or @uri in a message is resolved: the host readResources and appends the body into the text sent to Ollama.
rewrite this using @board-conventionsUnknown @foo → error, that turn does not call Ollama.
Slash commands
Input | Behavior |
| Prompt picker |
| Run that MCP prompt, then complete with Ollama |
| Alias for the above |
| Resource picker, then optional message |
| List tools |
| Print resource contents |
| Help |
| Exit |
MCP server surface
Registered from src/mcp/tools/task.tools.ts via homemade decorators (@McpTool / @McpResource / @McpPrompt) and createMcpServer().
Tools
Name | Purpose |
| List tasks; optional |
| Create a todo ( |
| Move a task by UUID |
| Counts per column (structured + text) |
Resource
Name | URI | Content |
|
| Markdown house rules for the board |
Prompt
Name | Args | Behavior |
|
| Builds a user message from that person’s tasks for stand-up drafting |
Seed data (in-memory, per MCP process): two sample tasks on startup.
Project layout
src/
cli/ # Terminal MCP host + Ollama
main.ts # REPL entry
mcp-session.ts # Stdio MCP client (spawns server)
ollama.client.ts # /api/chat + tool mapping
chat-loop.ts # Tool-calling loop
slash.ts # Slash parse + line classification
mentions.ts # @resource expand
pickers.ts # Inquirer search helpers (fallback flows)
repl-input.ts # Raw-mode editor + live / and @ menus
mcp/ # MCP server registration
decorators/ # WeakMap @McpTool / @McpResource / @McpPrompt
tools/task.tools.ts
mcp-server.factory.ts
stdio/main.stdio.ts # serveStdio(() => createMcpServer())
tasks/tasks.service.ts
test/ # Vitest (slash, mentions, chat-loop, tools, repl-input)The server wires TasksService → TaskTools by hand and discovers decorated methods with collectDecorated().
Scripts
Script | Description |
| CLI host (spawns MCP over stdio) |
| MCP server only (for Cursor / Claude Desktop / Inspector) |
| Vitest |
Point another host at this server
{
"command": "node",
"args": [
"--import",
"@swc-node/register/esm-register",
"src/stdio/main.stdio.ts"
]
}(Working directory = this repo.) Do not write logs to stdout in the stdio process — stdout is the MCP wire.
How registration works
Methods on
TaskToolsare marked with@McpTool/@McpResource/@McpPrompt.Decorators store metadata in a
WeakMapkeyed by the class constructor.createMcpServer(tasks?)constructsTaskTools, callscollectDecorated(), andregisterTool/registerResource/registerPrompton a freshMcpServer.Stdio uses a process-level
TasksServicesingleton so board state survives across connection factory calls. Tests passnew TasksService()for isolation.
Ollama tool loop (host)
listTools→ map to Ollama{ type: 'function', function: { name, description, parameters } }User message →
POST /api/chatwithtoolsIf
tool_calls→callToolon MCP → appendrole: 'tool'results → chat again (max 8 rounds)Domain tool errors (
isError) are returned as text so the model can retry
Tests
npm testCoverage includes:
Slash / line classification
@mention expand (name + URI, unknown tokens)Chat-loop with mocked Ollama + MCP
In-memory MCP protocol (tools + resource) via
InMemoryTransportLive-menu helpers (
shouldOpenPromptMenu/ resource)
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA basic Model Context Protocol server implementation that demonstrates core functionality including tools and resources for AI chat applications.-
- AlicenseBqualityCmaintenanceA toy MCP server for exploring Model Context Protocol capabilities, including resources, tools, and prompts.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides a production-ready Model Context Protocol server with dual STDIO and Streamable HTTP transports, enabling file operations, memory, database queries, RAG, web search, GitHub integration, background tasks, and prompt-based workflows.MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol server template that enables running and experimenting with stdio and HTTP transports, and simulating AI agent interactions with custom tools such as deploys, git checks, API references, and status queries.2-