Skip to main content
Glama

todo-mcp

The foro.sh example project: a small, stateful todo-list MCP server. Every new foro.sh workspace gets a deployed copy, so there is a live MCP endpoint to poke at before deploying anything of your own.

Tools

Tool

Description

add_task(title, priority)

Add a task (low / medium / high, default medium)

list_tasks(status)

List tasks (all / open / done, default all)

complete_task(id)

Mark a task as done

reopen_task(id)

Mark a task as not done

delete_task(id)

Delete a task

It also exposes two resources: tasks://board, the current board rendered as markdown, and ui://todo/list, the interactive view described below.

Related MCP server: Todo Markdown MCP Server

The interactive view

Every todo tool carries _meta.ui.resourceUri pointing at ui://todo/list, per the MCP Apps extension. A host that supports the extension fetches that resource — view.html, served as text/html;profile=mcp-app — and renders it in a sandboxed iframe beside the tool result: a checkbox list you can tick to complete and untick to reopen.

The view talks back over postMessage using @modelcontextprotocol/ext-apps: callServerTool to mutate the list, updateModelContext to tell the model what is on screen, and ontoolresult to re-render when the model changes the list itself. Because that SDK loads from a CDN, the resource declares unpkg.com under _meta.ui.csp — hosts build the iframe's Content-Security-Policy from that, and an undeclared origin means a blank view.

Hosts without the extension are unaffected: they ignore the metadata and show the plain tool results.

State

Tasks live in the server's memory. That is the point of the example: a tool call in one session mutates state the next call sees, because the container keeps running between calls. The ceiling is just as real: state resets whenever the server restarts or redeploys. For anything that must survive a restart, back your server with a database or external store.

Run it locally

uv run server.py

The server speaks MCP over streamable HTTP at http://localhost:8000/mcp (set PORT to change the port - the same name foro injects when it deploys you).

Deploy it

Its pyproject.toml is all foro.sh needs, so this repo deploys as-is: sign in, pick this repo, deploy.

F
license - not found
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that allows AI assistants to manage todo lists stored in a simple markdown file, supporting creation, reading, updating, and deletion of todo items with persistent IDs.
    5
    14
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    This MCP server provides tools to manage a todo list with CRUD operations, enabling listing, creating, updating, and deleting todos.

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.

  • A basic MCP server to operate on the Postman API.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/foro-sh/todo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server