Skip to main content
Glama
peteryang1756

Poe Algolia MCP Proxy

Poe API + Algolia MCP Proxy

OpenAI-compatible proxy that forwards chat completions to Poe API, and transparently executes Algolia MCP tool calls on the server side.

Converted from Deno to Node.js for deployment on Render.

Features

  • OpenAI-compatible POST /v1/chat/completions

  • Simulated function calling via system prompt injection

  • Auto-executes Algolia MCP tools (algolia_*) and feeds results back to the model

  • Non-Algolia tools are returned as standard OpenAI tool_calls for the client to run

  • Streaming (stream: true) and non-streaming modes

  • CORS enabled

Related MCP server: mcp_sdk_eyra_accelerator

Local development

npm install
npm start
# or with auto-reload:
npm run dev

Server listens on PORT (default 10000).

curl http://localhost:10000/healthz
curl http://localhost:10000/

Deploy to Render

Option A: Blueprint (render.yaml)

  1. Push this repo to GitHub/GitLab

  2. In Render Dashboard → NewBlueprint

  3. Connect the repo; Render reads render.yaml

Option B: Manual Web Service

Setting

Value

Runtime

Node

Build Command

npm install

Start Command

npm start

Node Version

18+ (recommended 20)

Render injects PORT automatically — the app already reads process.env.PORT.

Environment variables (optional)

Key

Default

PORT

set by Render

POE_API_BASE_URL

https://api.poe.com/v1

ALGOLIA_MCP_URL

Algolia MCP endpoint

Poe API keys are passed per-request via Authorization: Bearer <POE_API_KEY>. You do not need to store the Poe key as a Render env var unless you want a server-side default.

API

curl https://YOUR-SERVICE.onrender.com/v1/chat/completions \
  -H "Authorization: Bearer $YOUR_POE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Claude-Sonnet-4.6",
    "messages": [{"role": "user", "content": "幫我查一下如何加入賽事"}],
    "stream": false,
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "algolia_index_help",
          "description": "Search the Algolia index help",
          "parameters": {
            "type": "object",
            "properties": {
              "query": { "type": "string", "description": "搜尋關鍵字" }
            },
            "required": ["query"]
          }
        }
      }
    ]
  }'

Also supports prefixed routes: POST /:prefix/v1/chat/completions.

Endpoints

Method

Path

Description

GET

/

Help text

GET

/healthz

Health check

POST

/v1/chat/completions

Chat completions

POST

/:prefix/v1/chat/completions

Prefixed chat completions

Related MCP Connectors

Related MCP Servers