🚀 Live Server: The server is running at https://mcp.nerdear.la/mcp
An MCP (Model Context Protocol) server that provides information about Nerdearla events, speakers, and sessions. Built with FastMCP and supports streamable HTTP in stateless mode with JSON responses.
To use this MCP server with VS Code Copilot:
- Open the command palette in VS Code (
Cmd+Shift+P
/Ctrl+Shift+P
) - Type "MCP: Add Server" and select it
- Select "HTTP" as the server type
- Enter the server URL:
https://mcp.nerdear.la/mcp
- Give it a name, any name is fine
- Select if you want to save it in your user or workspace settings
You can now ask Copilot about Nerdearla events, speakers, and sessions!
Most Agents/IDEs support MCP servers out of the box. Check your documentation for instructions on how to add a new server.
This project uses uv for dependency management. Make sure you have uv installed:
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
Then install the project dependencies:
# Clone and navigate to the repository
cd nerdearla-mcp
# Install dependencies with uv
uv sync
Start the MCP server:
# Using uv
uv run nerdearla-mcp
# Or directly with Python
uv run python -m nerdearla_mcp.server
The server will start on http://localhost:8000/mcp
by default.
nerdearla-mcp/
├── nerdearla_mcp/
│ ├── __init__.py
│ └── server.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── README.md # This file
└── ...
To add new tools to the server:
- Define your tool function in
nerdearla_mcp/server.py
- Use the
@mcp.tool()
decorator - Add proper type hints and docstrings
- Implement the tool to retrieve the data from an API, file or database as needed
Example:
@mcp.tool()
def get_sponsors(tier: Optional[str] = None) -> List[Dict[str, Any]]:
"""
Get information about event sponsors.
Args:
tier: Optional filter by sponsor tier (e.g., "Gold", "Silver", "Bronze")
Returns:
List of sponsor information
"""
# Implementation here
pass
# Run tests with pytest
uv run pytest
This project uses pre-commit hooks to automatically format and lint code before commits:
Install pre-commit hooks:
# Install dependencies (includes pre-commit)
uv sync
# Install the git hooks
uv run pre-commit install
Usage:
- Hooks run automatically on
git commit
- To run manually on all files:
uv run pre-commit run --all-files
- To skip hooks for a commit:
git commit --no-verify
The hooks will automatically:
- Format code with Black
- Lint and fix issues with Ruff
- Format code with Ruff formatter
The server runs on port 8000 by default. You can configure the port using environment variables:
Environment Variable:
export PORT=3000
uv run nerdearla-mcp
Using .env file:
Create a .env
file in the project root:
PORT=3000
Priority order:
- Environment variable
PORT
.env
file- Default: 8000
The server uses streamable HTTP transport with the following default settings:
- Host:
0.0.0.0
(accepts connections from any IP) - Port: as described above
- Path:
/mcp
(API endpoint) - Transport:
streamable-http
- Mode:
stateless_http=True
- Fork the repository
- Make your changes
- Add tests if applicable
- Run the linter and formatter
- Submit a pull request
See the LICENSE file for details.