Skip to main content

MCP server for Nerdearla

Project description

Nerdearla MCP Server

🚀 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.

Quick Start - Add to VS Code Copilot

To use this MCP server with VS Code Copilot:

  1. Open the command palette in VS Code (Cmd+Shift+P / Ctrl+Shift+P)
  2. Type "MCP: Add Server" and select it
  3. Select "HTTP" as the server type
  4. Enter the server URL: https://mcp.nerdear.la/mcp
  5. Give it a name, any name is fine
  6. Select if you want to save it in your user or workspace settings

You can now ask Copilot about Nerdearla events, speakers, and sessions!

Quick Start - Add to your favourite Agent/IDE

Most Agents/IDEs support MCP servers out of the box. Check your documentation for instructions on how to add a new server.

Local Developtment Setup

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

Usage

Running the Server

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.

Development

Project Structure

nerdearla-mcp/
├── nerdearla_mcp/
│   ├── __init__.py
│   └── server.py          # Main MCP server implementation
├── pyproject.toml         # Project configuration and dependencies
├── README.md              # This file
└── ...

Adding New Tools

To add new tools to the server:

  1. Define your tool function in nerdearla_mcp/server.py
  2. Use the @mcp.tool() decorator
  3. Add proper type hints and docstrings
  4. 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

Running Tests

# Run tests with pytest
uv run pytest

Code Formatting

Pre-commit Hooks (Recommended)

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

Configuration

Port Configuration

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:

  1. Environment variable PORT
  2. .env file
  3. Default: 8000

Server Configuration

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

Contributing

  1. Fork the repository
  2. Make your changes
  3. Add tests if applicable
  4. Run the linter and formatter
  5. Submit a pull request

License

See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_sysarmy_nerdearla_mcp-0.1.0.tar.gz (83.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_sysarmy_nerdearla_mcp-0.1.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_sysarmy_nerdearla_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_sysarmy_nerdearla_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 83.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_sysarmy_nerdearla_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bbf1e86111cb4a9e2d9ebf11f277ef4baa01c4ffaf47cdd8d23a7421a0019452
MD5 91685039e359be871a451882589e1c49
BLAKE2b-256 008fffe8289eac6d3c6a8e4c0c09c331aaaf6f13f104be4139b0d476ac1cc893

See more details on using hashes here.

File details

Details for the file iflow_mcp_sysarmy_nerdearla_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_sysarmy_nerdearla_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_sysarmy_nerdearla_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0522caf4481d0dc9b1352de054151fe58f6236697055916efa09678bdf18eea
MD5 b40968c4348442074aeffabc0e95f5a8
BLAKE2b-256 5c8e276a44e3fb59a6d80ab14de589f4d30a2b413c33bb0770dbaf1686de4947

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page