Skip to main content
Glama
ajitnk-lab

mcp-server-ngrok

by ajitnk-lab

MCP Server for ngrok + Kiro Web

A local MCP (Model Context Protocol) server with SSE and Streamable HTTP transports, designed to be exposed via ngrok and used as a true MCP server in Kiro Web.

Quick Start

# 1. Install
npm install

# 2. Run the server
npm run dev

# 3. In another terminal, expose via ngrok
ngrok http 3000

Copy the ngrok HTTPS URL (e.g., https://abc123.ngrok-free.app).

Related MCP server: MCP HTTP Proxy

Add to Kiro Web Config

{
  "mcpServers": {
    "my-local-server": {
      "type": "sse",
      "url": "https://YOUR-NGROK-URL.ngrok-free.app/sse"
    }
  }
}

Then start a new Kiro session - the AI will have access to all your custom tools!

Available Tools

Tool

Description

greet

Generate a personalized greeting message

get_current_time

Get the current date/time (with optional timezone)

calculate

Perform arithmetic (add, subtract, multiply, divide)

save_note

Save a note with a key

get_note

Retrieve a saved note by key

list_notes

List all saved note keys

system_info

Get server system information

Endpoints

Endpoint

Method

Transport

Description

/health

GET

-

Health check

/sse

GET

SSE

SSE connection (legacy transport)

/messages

POST

SSE

SSE message handler

/mcp

POST

Streamable HTTP

Modern transport

Adding Your Own Tools

Edit src/server.ts and add tools inside the createMcpServer() function:

server.registerTool(
  "my_tool_name",
  {
    title: "My Tool",
    description: "What this tool does",
    inputSchema: {
      param1: z.string().describe("Description of param1"),
      param2: z.number().optional().describe("Optional param"),
    },
  },
  async ({ param1, param2 }) => {
    const result = `Got: ${param1}, ${param2}`;
    return { content: [{ type: "text", text: result }] };
  }
);

Architecture

┌─────────────────┐       ┌─────────────┐       ┌─────────────────────┐
│   Kiro Web      │◀─────▶│   ngrok     │◀─────▶│  Your Local Machine │
│   (AI Client)   │ HTTPS │   tunnel    │  HTTP  │  MCP Server :3000   │
└─────────────────┘       └─────────────┘       └─────────────────────┘

Configuration

Environment Variable

Default

Description

PORT

3000

Port the server listens on

Security Notes

  • Your ngrok URL is publicly accessible - keep it private

  • For production, add authentication (API keys, OAuth)

  • ngrok paid plans offer IP restrictions and fixed subdomains

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with remote MCP servers using SSE transport instead of STDIO for enhanced communication capabilities.
    1
    203,795 PyPI
    2,751
    Python
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes any stdio-based MCP server to the internet via HTTP/SSE transport, enabling remote agents to access MCP tools over a network.
    4 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lifts local stdio MCP servers into remote Streamable HTTP endpoints for cloud-hosted AI clients, with bearer-token auth and tool policy filtering.
    4 npm
    MIT