
MCP-YNU FastMCP Server
A dynamic MCP server implementation that automatically loads tools, resources, and prompts from their respective directories, allowing for easy extension and configuration.
README
MCP-YNU - FastMCP Server
A dynamic MCP server implementation using FastMCP that automatically loads tools, resources, and prompts from respective directories.
Features
- Dynamic loading of modules from
tools/
,resources/
, andprompts/
directories - Automatic discovery and registration of modules
- Simple configuration and extensibility
- Type hints for better code clarity and static analysis
- Comprehensive logging for monitoring server activity
Recent Updates
- Added type hints throughout the codebase
- Improved MCP instance handling
- Added logging functionality
- Added MIT license
- Updated documentation with reference links
Directory Structure
mcp-ynu/
├── tools/ # Directory for tool modules
│ ├── __init__.py
│ ├── example.py
├── resources/ # Directory for resource modules
│ ├── __init__.py
│ ├── example.py
├── prompts/ # Directory for prompt modules
│ ├── __init__.py
│ ├── example.py
├── logger.py # Logger implementation
├── main.py # Main implementation
├── mcp_server.py # MCP server implementation
├── README.md # Project documentation
├── LICENSE # MIT License
└── pyproject.toml # Project configuration
Usage
- Create modules in the appropriate directories
- Import mcp via
from mcp_server import mcp
- Run the server:
python main.py
Example Modules
Tools Module Example (tools/example.py)
from mcp_server import mcp
import httpx
@mcp.tool()
def calculate_bmi(weight_kg: float, height_m: float) -> float:
"""Calculate BMI given weight in kg and height in meters"""
return weight_kg / (height_m**2)
@mcp.tool()
async def fetch_weather(city: str) -> str:
"""Fetch current weather for a city"""
async with httpx.AsyncClient() as client:
response = await client.get(f"https://api.weather.com/{city}")
return response.text
Resources Module Example (resources/example.py)
from mcp_server import mcp
@mcp.resource("config://app")
def get_config() -> str:
"""Static configuration data"""
return "App configuration here"
@mcp.resource("users://{user_id}/profile")
def get_user_profile(user_id: str) -> str:
"""Dynamic user data"""
return f"Profile data for user {user_id}"
Prompts Module Example (prompts/example.py)
from mcp_server import mcp
from mcp.server.fastmcp.prompts import base
@mcp.prompt()
def review_code(code: str) -> str:
return f"Please review this code:\n\n{code}"
@mcp.prompt()
def debug_error(error: str) -> list[base.Message]:
return [
base.UserMessage("I'm seeing this error:"),
base.UserMessage(error),
base.AssistantMessage("I'll help debug that. What have you tried so far?"),
]
Debugging
- Update
MCP_TRANSPORT_TYPE
in.env
, Executepython main.py
to start the mcp server - Execute
npx @modelcontextprotocol/inspector
to open the inspect. - Choose
SSE
Transport Type with URLhttp://localhost:<mcp_server_port>/sse
or ChooseSTDIO
Transport Type with Commandpython
and Arguments/path/to/main.py
Requirements
- Python >= 3.10
- FastMCP
Reference Links
License
This project is licensed under the MIT License - see the LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.