mcp-starter
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-starterAdd a new todo: finish report"
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-starter
Local FastMCP servers managed with uv (Python 3.13+).
Setup
uv sync
source .venv/bin/activate # optional; uv run works without itRelated MCP server: Todo MCP Server
Servers
Server | Entrypoint | HTTP port |
Todo MCP |
|
|
Postgres MCP |
|
|
Run (no reload)
uv run mcp-starter
uv run postgres-mcpRun with hot reload (recommended for development)
Prefer FastMCP’s built-in reload (cleaner process teardown than wrapping with watchfiles):
# Todo MCP
uv run fastmcp run src/mcp_starter/__init__.py:mcp \
--transport http --host 127.0.0.1 --port 8005 \
--reload --reload-dir src
# Postgres MCP
uv run fastmcp run src/postgres_mcp/__init__.py:mcp \
--transport http --host 127.0.0.1 --port 8006 \
--reload --reload-dir srcAlternative using watchfiles:
uv run watchfiles --filter python 'uv run postgres-mcp' srcIf reload fails with address already in use, an old process is still bound to the port:
lsof -nP -iTCP:8006 -sTCP:LISTEN
kill <pid>Clients
uv run mcp-client # hits http://localhost:8005/mcp
uv run postgres-client # hits http://localhost:8006/mcpStart the matching server first.
Claude Desktop (stdio)
Claude Desktop uses stdio, not HTTP. Add to
~/Library/Application Support/Claude/claude_desktop_config.json:
"todo-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/tayo/code/courses/AI/Claude/mcp-starter",
"run",
"fastmcp",
"run",
"src/mcp_starter/__init__.py:mcp"
]
},
"postgres-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/tayo/code/courses/AI/Claude/mcp-starter",
"run",
"fastmcp",
"run",
"src/postgres_mcp/__init__.py:mcp"
]
}Fully quit and reopen Claude Desktop after editing.
Package commands
uv add <package>
uv remove <package>
uv syncAvailable Tools
1 toolgreetD
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
greet
TDQS
Scored across 1 tool
With only one tool, there is no possibility of inter-tool confusion or misselection. However, the complete absence of a description leaves some uncertainty about the tool's exact purpose and usage, slightly reducing clarity.
The single tool name 'greet' is a simple verb in lowercase, which is consistent with common MCP naming conventions. There is no second tool to create a naming pattern conflict.
A single, undocumented 'greet' tool is an extreme mismatch for any meaningful server scope. The rubric explicitly treats a single trivial tool as a score of 1.
The server provides no lifecycle, CRUD, or domain-specific operations beyond a trivial greeting. This is a severely incomplete surface for any practical agent use case.
Maintenance
Related MCP Connectors
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Related MCP Servers
- FlicenseBqualityDmaintenanceA template and demonstration project for building, testing, and deploying remote MCP servers using FastMCP and uv. It provides a foundational structure for creating MCP-compliant tools that can be hosted publicly and integrated with LLM agents.2-
- AlicenseNot gradedqualityDmaintenanceA multi-node todo application server using MCP protocol, Redis for storage, and OpenRouter for AI-powered prioritization analysis.MIT
- FlicenseNot gradedqualityCmaintenanceFastAPI Todo API with an MCP server for managing todos, deployable to Render, AWS App Runner, or ECS.-
- FlicenseNot gradedqualityBmaintenanceA minimal Python MCP Todo server backed by Appwrite Cloud, providing tools to add, list, get, update, complete, and delete tasks.-