Skip to content

emredeveloper/MCP-Render

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCP Server - Render Deployment (SSE Transport)

This project is a sample Model Context Protocol (MCP) server that runs on Render using SSE (Server-Sent Events) transport.

Features

  • HTTP + SSE Transport: Runs as a Render Web Service
  • Tools:
    • get_users: List all users
    • get_user_by_id: Get a user by ID
    • get_server_stats: Get server stats
    • calculate: Basic math (add, subtract, multiply, divide)
    • erp_list_customers: Mock ERP customers (read-only)
    • erp_get_customer: Mock ERP customer by ID
    • erp_list_orders: Mock ERP orders (read-only)
    • erp_get_order: Mock ERP order by ID
    • erp_list_invoices: Mock ERP invoices (read-only)
    • erp_list_inventory: Mock ERP inventory (read-only)
    • db_create: Create SQLite DB (optional schema)
    • db_list_tables: List SQLite tables (read-only)
    • db_table_schema: Show table schema (read-only)
    • db_query: Run SELECT/WITH queries (read-only)
    • db_exec: Run INSERT/UPDATE/DELETE/CREATE (write)
  • Resources:
    • data://users: Users list (JSON)
    • data://stats: Server stats (JSON)

Endpoints

Endpoint Method Description
/ GET API info
/health GET Health check (for Render)
/sse GET SSE connection (MCP client connects here)
/message POST MCP messages (client to server)

Local Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Start server
npm start

# Watch mode
npm run dev

The server runs on http://localhost:8080.

Deploy to Render

1. Push to GitHub

git init
git add .
git commit -m "MCP Server SSE"
git remote add origin https://github.com/yourusername/mcp-server-sse.git
git push -u origin main

2. Create a Render Web Service

  1. Log in to the Render Dashboard
  2. Select New > Web Service
  3. Connect your GitHub repo
  4. Use these settings:
    • Runtime: Docker
    • Plan: Free (or your preferred plan)
    • Dockerfile Path: ./Dockerfile
    • Port: 8080
  5. Click Deploy

3. Deploy with Blueprint (Optional)

You can deploy using render.yaml:

  1. Go to Render Blueprints
  2. Select New Blueprint Instance
  3. Choose your repo
  4. Deploy

MCP Client Usage

To connect to the MCP server over SSE, the client must use the SSE URL.

Claude Desktop Config (example)

{
  "mcpServers": {
    "render-server": {
      "url": "https://your-service.onrender.com/sse"
    }
  }
}

Local Development Config

{
  "mcpServers": {
    "local-server": {
      "url": "http://localhost:8080/sse"
    }
  }
}

API Testing

Health Check

curl http://localhost:8080/health

SSE Connection (in a new terminal)

curl http://localhost:8080/sse

Send MCP Message

curl -X POST http://localhost:8080/message \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'

Logging

Tool calls are logged as JSON lines. By default logs go to stdout.
Set LOG_FILE to write logs to a file instead.

SQLite

The server can create and query a local SQLite database.

Env vars:

  • SQLITE_FILE (default: ./data/app.db)

Example usage:

  • db_create with schema_sql: "CREATE TABLE items(id INTEGER PRIMARY KEY, name TEXT);"
  • db_list_tables
  • db_table_schema with table: "items"
  • db_query with sql: "SELECT * FROM items"
  • db_exec with sql: "INSERT INTO items(name) VALUES('Elma'),('Armut')"

Project Structure

.
├── src/
│   └── index.ts          # MCP server code (Express + SSE)
├── dist/                 # Compiled JavaScript (after build)
├── Dockerfile            # Docker image
├── render.yaml           # Render blueprint
├── package.json          # NPM dependencies
├── tsconfig.json         # TypeScript config
└── README.md             # This file

Technologies

  • @modelcontextprotocol/sdk: MCP Server SDK
  • Express: HTTP framework
  • SSE: Server-Sent Events transport
  • TypeScript: Type-safe development
  • Docker: Containerization
  • Render: Cloud deployment

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published