Skip to main content
Glama
ahmetacn

HoPe Chatbot MCP Server

by ahmetacn

HoPe Chatbot MCP Server

Uses FastMCP v3.

For code organization reasons MCP functionality is split into logical modules, MCP sub-servers.

Main MCP server can import/mount sub-domain MCP servers. (mcp_server/app.py)

Development

Define your capabilities separated to composable MCP servers.

Define new MCP tools, resources, prompts... for <some> domain for <some> business capability in <some> MCP sub-server in mcp_server/servers/<some>/mcp.py.

Expose MCP server capabilities

Decide how you want your MCP tools, resources, prompts... to be available:

  • in 1 combined MCP server (all-in-one) 🌐

  • as separate MCP server only 🔒🪪

  • both ✨

All-in-one MCP server

Include sub-domain MCP server in combined MCP server.

Follow these steps in mcp_server/app.py:

  • Import your FastMCP app

    from mcp_server.servers.some import some_mcp
  • Find main MCP server defined. Add capabilities of your MCP server into main MCP server in startup/setup lifespan phase of main MCP server

    async def setup(app: FastMCP):
        # Import or mount subservers
    
        app.mount(some_mcp)  # dynamic mount
        # await app.import_server(some_mcp)  # static copy
    
    
    @contextlib.asynccontextmanager
    async def lifespan(app: FastMCP):
        # Setup
        await setup(app)
        yield
        # Cleanup
    
    main_mcp = FastMCP(
        name="home-of-performance-mcp-server",
        lifespan=lifespan
    )
  • Main combined MCP server contains capabilities of your MCP server at: BASE_URL/mcp.

    It should be true for main combined MCP server ran in all cases:

    • mcp_server/app.py ran as a module

      • FastMCP.run method

    • mcp_server/app.py ran with uvicorn

      • FastMCP.http_app

        • ASGI app of your MCP server mount to FastAPI app, uvicorn accessing FastAPI ASGI app

        • (uvicorn accessing your ASGI directly will work too)

Separate MCP server

Expose separate sub-domain MCP server.

Follow these steps in mcp_server/app.py:

  • Import your FastMCP app

    from mcp_server.servers.some import some_mcp
  • Create ASGI app from your FastMCP app

    (no need to redefine path="/mcp" kwarg)

    some_mcp_app = some_mcp.http_app()
  • Add lifespan of your FastMCP app to combined lifespan used by FastAPI app

    @contextlib.asynccontextmanager
    async def combined_lifespan(app: FastAPI):
        """Combine lifespans for FastAPI app"""
        # Run all lifespans
        async with main_mcp_app.lifespan(app):
            async with some_mcp_app.lifespan(app):
                # Setup
                yield
                # Cleanup
    
    fastapi_app = FastAPI(
        title="Home of Performance MCP",
        lifespan=combined_lifespan
    )
  • Mount ASGI app of your MCP server to FastAPI app under /some path

    fastapi_app.mount("/some", some_mcp_app)
    
  • find your separate MCP server at: BASE_URL/some/mcp

Related MCP server: Golf

Running locally

  • Define environment variables in .env according to .env.template (do not commit secrets)

  • Install required python packages from requirements.txt

  • Start FastMCP app through run method

    python -m mcp_server.app

    or run FastAPI app with MCP server(s) mount into it through gunicorn, uvicorn...

    source .venv/bin/activate && uvicorn src.app:app --host 0.0.0.0 --port 8000 --reload

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables dynamic loading, hot-reloading, and orchestration of MCP servers without restarting Claude Code, allowing programmatic tool calling and workflow automation across multiple servers.
    2
  • A
    license
    Not graded
    quality
    C
    maintenance
    Easiest framework for building MCP servers with automatic discovery of tools, prompts, and resources, plus enterprise-grade authentication and telemetry.
    837
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables building MCP servers with embedded reasoning, allowing complex tasks to be offloaded to an internal LLM for token and cost efficiency.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Aggregates multiple MCP servers into a single endpoint, enabling LLM clients to access tools, resources, and prompts from various backends through one connection.
    15
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmetacn/axis-chart-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server