Skip to main content
Glama
CamiR24

academic-remote-mcp

by CamiR24

Academic Remote MCP Server

A minimal MCP (Model Context Protocol) server, deployed remotely on Google Cloud Run, providing a single tool: random study tips.

Built for CC3067 Redes, Project 1 (Universidad del Valle de Guatemala) — functional requirement #7 (remote MCP server). Per the assignment instructions, this server's functionality is intentionally trivial; what matters is that it runs remotely and is reachable over the network.

Tool exposed

Tool

Parameters

Returns

get_random_study_tip

none

A random study tip (string)

Example

Request:

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_random_study_tip","arguments":{}}}

Response:

{"jsonrpc":"2.0","id":3,"result":{"content":[{"type":"text","text":"Prioriza entender antes de memorizar: lo que comprendes se te olvida menos."}]}}

Related MCP server: Guess Number MCP Server

Architecture

Chatbot (local)
      │
      │ HTTPS (Streamable HTTP, stateless)
      ▼
   Internet
      │
      ▼
Google Cloud Run
      │
      ▼
FastMCP server (get_random_study_tip)

The server runs in stateless HTTP mode (stateless_http=True). This is a deliberate design choice: Cloud Run can scale to multiple container instances, and each instance keeps MCP sessions in its own memory. In stateful mode, a follow-up request routed to a different instance than the one that opened the session would fail with a "session not found" error. Since this server's tool needs no session state at all, running stateless avoids that failure mode entirely.

Requirements

  • Python 3.12+

  • Docker (for local testing and for building the Cloud Run image)

  • A Google Cloud project with the Cloud Run and Cloud Build APIs enabled

Installation (local)

git clone <this-repository-url>
cd academic-remote-mcp

python3 -m venv venv
source venv/bin/activate      # on Windows: venv\Scripts\activate

pip install -r requirements.txt

Running locally

export PORT=8080
python src/server.py

Or with Docker (recommended, matches the production environment exactly):

docker build -t academic-remote-mcp .
docker run -p 8080:8080 -e PORT=8080 academic-remote-mcp

Test the handshake:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

Deployment (Google Cloud Run)

gcloud run deploy academic-remote-mcp \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --port 8080

Cloud Run automatically injects the PORT environment variable; the server reads it at startup rather than hardcoding a port.

Deployed endpoint: https://academic-remote-mcp-842046673187.us-central1.run.app/mcp

Connecting from an MCP host

Using the official mcp Python SDK's Streamable HTTP client:

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async with streamablehttp_client(
    "https://academic-remote-mcp-842046673187.us-central1.run.app/mcp"
) as (read, write, _):
    async with ClientSession(read, write) as session:
        await session.initialize()
        result = await session.call_tool("get_random_study_tip", {})

Project Structure

academic-remote-mcp/
├── src/
│   └── server.py
├── Dockerfile
├── requirements.txt
└── README.md

A note on the mcp SDK version

This server uses mcp.server.fastmcp.FastMCP (the mcp 1.x API), pinned via requirements.txt (mcp==1.29.1) to stay consistent with the other repositories in this project. The SDK's 2.x release renamed FastMCP to MCPServer and moved host/port from the constructor to .run(); if upgrading, adjust src/server.py accordingly.

License

MIT.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    A secure MCP server example that demonstrates how to deploy to Google Cloud Run with authentication and identity token protection. Serves as a tutorial template for building production-ready MCP servers in the cloud.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to play a number guessing game through a remote MCP server deployed on Google Cloud Run. The server tracks game state per user and maintains conversation logs for an interactive guessing experience.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A FastMCP-based server that provides tools for retrieving animal species lists and specific animal details from a fictional zoo. It serves as a reference for deploying and securing Model Context Protocol servers on Google Cloud Run.
    Apache 2.0

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/CamiR24/academic-remote-mcp'

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