Skip to main content
Glama

Regalport MCP Server — for AIPI's Custom MCP

This replaces the character-limited Knowledge Base text field with a live tool the Harbour Register agent can query. Instead of pre-loading a compressed 4,000-character summary, the agent calls a tool and gets back exactly the entry it needs, from a dataset of 223 entries / ~40,000 characters covering the full Regalport sourcebook and the five-session Prelude.

What's in this folder

File

What it is

server.py

The MCP server. Three tools: search, get_entry, list_entries.

regalport_kb.json

The dataset — every NPC, district, faction, law, ship, session, encounter, hook, and place, each tagged PUBLIC or DM.

build_data.py

The script that generated regalport_kb.json. Edit this and re-run it (python3 build_data.py) if you want to add or change entries — don't hand-edit the JSON.

requirements.txt

One dependency: mcp.

Dockerfile

Builds a container that runs the server, reading $PORT from the environment (standard on Render/Railway/Fly).

character_description.txt

A short (1,351-character) replacement for AIPI's Character Description field — the persona now tells the agent to call the tools instead of embedding facts directly.

Related MCP server: Dewey

Why it's confirmed to work

I ran this server locally, connected a real MCP client to it over SSE, and called all three tools (search("Ossric"), get_entry("Denna Roq"), get_entry("E4"), list_entries("district")) — all returned correct, properly-tagged results. AIPI's Custom MCP field only accepts SSE transport, which is what server.py runs (mcp.run(transport="sse", ...) on /sse).

Deploying it (so AIPI can reach it)

AIPI's cloud backend needs to reach this server over the public internet — it can't be localhost on your own machine. Any host that runs a long-lived Python/Docker process works. Render is the easiest free path:

  1. Push this folder to a new GitHub repo (or a subfolder of an existing one).

  2. On render.com, New → Web Service, connect the repo.

  3. Render auto-detects the Dockerfile. Leave the build/start commands as-is — the Dockerfile handles it.

  4. Deploy. Render gives you a URL like https://regalport-mcp.onrender.com.

  5. Check it's alive: visit https://regalport-mcp.onrender.com/health — should say ok — 223 entries loaded.

  6. Your SSE endpoint for AIPI is https://regalport-mcp.onrender.com/sse.

One tradeoff on Render's free tier: it spins the service down after 15 minutes idle, so the first tool call after a quiet spell takes ~30-50 seconds to wake up (the second call is instant). Fine for casual home use; if that first-call lag bothers you at the table, Render's cheapest paid tier ($7/mo) or Fly.io's small always-on instance removes it.

Alternative: Railway.app works almost identically (auto-detects the Dockerfile, gives you a public URL, similar free-tier idle behavior).

Setting it up in AIPI

  1. Open your Harbour Register agent's Configuring Character screen on xdc.aipi.com.

  2. In MCP Expansion → Custom MCP, add the server URL: https://<your-host>/sse.

  3. Replace the contents of Character Description with character_description.txt.

  4. You can now leave the Knowledge Base text field mostly empty, or use it only for anything you want guaranteed-loaded with zero tool-call latency (e.g. the Six Laws, since those come up constantly). Everything else — NPCs, ships, encounters, factions, districts — is now served live by the MCP tools instead of being crammed into a character count.

Extending it later

To add the island-hex material once the party makes landfall, or to update anything here (correct a name, add an NPC, fix a secret), edit the add(...) calls in build_data.py and re-run it — it regenerates regalport_kb.json from scratch, so there's one source of truth instead of hand-edited JSON drifting out of sync with the campaign docs. Re-deploy (push to the repo; Render redeploys automatically on push).

Local testing

pip install mcp
python3 server.py 8765        # starts on localhost:8765
curl http://127.0.0.1:8765/health

To exercise the actual tools before deploying, use the official mcp client library's sse_client against http://127.0.0.1:8765/sse — that's exactly how I verified this before handing it to you.

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
    D
    maintenance
    Provides AI assistants with tools to query and explore the Azgaarnoth D\&D world repository, including searching content, retrieving stat blocks, spells, and browsing categories like races, classes, nations, and creatures across ~4,200 markdown files.
    -
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables searching and researching document collections through hybrid semantic search and agentic research queries with grounded, cited answers. It allows users to list collections, scan document sections, and retrieve full Markdown content via MCP-compatible agents.
    43
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides semantic search and keyword search over Obsidian notes, along with direct note retrieval, allowing external AI agents to query and access the vault.
    19
    BSD Zero Clause
  • A
    license
    B
    quality
    B
    maintenance
    Provides read-only hybrid RAG search and discovery over a local-first AI knowledge corpus, enabling semantic and keyword search, browse, digest, and status tools.
    4
    PolyForm Noncommercial 1.0.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/itsphysics1013-create/regalport-mcp'

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