MCP Demo
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 Demoshow me the hackathon overview"
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 Demo
A production-ready FastMCP reference server with hackathon resources and reusable starter prompts
Overview
A FastMCP server with comprehensive hackathon overview resources and reusable starter prompts. Clone, install dependencies or build the Docker image, and you have an MCP server that Cursor can load immediately.
Related MCP server: Awesome-MCP-Scaffold
Requirements
Component | Version | Required |
Python | 3.12+ | Yes |
uv | Latest | Yes |
Docker | 24+ | Optional |
Node.js | 18+ | Optional |
Quick Start
Local Python Setup
# Install dependencies and run
uv sync
uv run server.pyDocker Setup
# Build the image
docker build -t mcp-demo:latest .
# Run the container
docker run --rm -i mcp-demo:latest
# Development mode with live reload
docker run --rm -it -v "$(pwd)":/app mcp-demo:latestRemote MCP (no local setup)
npx -y mcp-remote https://cursor-denver-mcp-hackathon.fastmcp.app/mcpDeployment Options
Mode | Use Case | Setup | Best For |
Local STDIO | Cursor integration | Simple | Development |
Remote HTTP/SSE | Public access | Advanced | Production |
Docker Local | Isolated environment | Medium | Testing |
Docker Remote | Cloud deployment | Advanced | Production |
Container Registry Push
# GitHub Container Registry
docker tag mcp-demo:latest ghcr.io/<your-user>/mcp-demo:latest
docker push ghcr.io/<your-user>/mcp-demo:latest
# Docker Hub
docker tag mcp-demo:latest <your-user>/mcp-demo:latest
docker push <your-user>/mcp-demo:latestCursor Configuration
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"fastmcp-demo": {
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/absolute/path/to/mcp-demo"
}
}
}{
"mcpServers": {
"fastmcp-demo": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--volume",
"/absolute/path/to/mcp-demo:/app",
"mcp-demo"
]
}
}
}Remote MCP Server
{
"mcpServers": {
"denver-hackathon": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://cursor-denver-mcp-hackathon.fastmcp.app/mcp"
]
}
}
}Restart Cursor after updating configuration.
Testing
# Run all tests
pytest
# Run with coverage
pytest --cov=. --cov-report=html
# Run specific test
pytest tests/test_server.py -vProject Structure
mcp-demo/
├── server.py # FastMCP server
├── main.py # Alternative entry point
├── Dockerfile # Container build
├── requirements.txt # Dependencies
├── pyproject.toml # Project config
├── resources/
│ └── hackathon_overview.md
├── prompts/
│ └── fastmcp_python_starter.md
└── tests/
├── conftest.py
└── test_server.pyLicense
MIT License
Built for the Cursor Denver Hackathon
Available Tools
1 toolget_hackathon_infoA
Get the complete hackathon overview with all information about the MCP Server Hackathon.
Returns: The full hackathon overview document including format, getting started guide, project ideas, resources, and quick reference.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It does specify what the tool returns (the overview document with sections) and implies a read-only operation through the verb 'Get', but it does not explicitly state that it has no side effects, requires no authentication, or that it is safe to call repeatedly.
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?
The description is extremely concise, with two sentences front-loading the primary action and then detailing the return contents. Every sentence earns its place without redundancy.
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?
The tool is simple with 0 parameters and an output schema that explains the return shape. The description adds valuable detail about the document's contents, making it sufficiently complete for an agent to understand and invoke the tool correctly.
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?
The tool has 0 parameters, and the description correctly includes no parameter information. Since there is no need to clarify parameter semantics, the baseline of 4 applies.
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?
The description clearly states a specific action ('Get') and resource ('complete hackathon overview'), and explicitly lists the contents of what will be returned. While there are no sibling tools to differentiate from, its action and resource are unambiguous.
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?
The description implies this tool is the go-to source for hackathon overview information, but it does not explicitly describe when to use it, any prerequisites, or alternatives. Given there are no sibling tools, this absence is not a significant issue, but it still lacks explicit usage context.
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
get_hackathon_info
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion between tools. The purpose is clearly defined and unique.
The single tool name 'get_hackathon_info' follows a clear verb_noun convention, which is internally consistent.
A single tool feels thin for a server, even as a demo. It is borderline but not necessarily inappropriate given the focused purpose.
The tool fully covers the stated purpose of retrieving hackathon information. There are no obvious missing operations for this narrow scope.
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agent profiles and smart notes. 60+ coding prompt packs with expert personas.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA FastMCP-based server that provides complete Slack integration for Cursor IDE, allowing users to interact with Slack API features using natural language.-
- AlicenseNot gradedqualityCmaintenanceA production-ready development scaffold for MCP servers, optimized for Cursor IDE with built-in tools, resources, and prompts that enables quick development of Model Context Protocol servers with 5-minute startup and 10-minute development capabilities.26MIT
- FlicenseAqualityDmaintenanceA production-ready MCP server that provides hackathon resources and reusable starter prompts. Built with FastMCP framework and includes comprehensive deployment options for development and production environments.1-
- FlicenseCqualityDmaintenanceA starter template for building MCP (Model Context Protocol) servers that can integrate with Claude, Cursor, or other MCP-compatible AI assistants. Provides a foundation with example implementations of tools, resources, and prompts along with installation scripts.26-