mcp-server-ngrok
Allows exposing the MCP server publicly via an ngrok tunnel, enabling remote AI clients like Kiro Web to connect and use custom tools.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-ngrokGet the current time in Tokyo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 3000Copy the ngrok HTTPS URL (e.g., https://abc123.ngrok-free.app).
Related MCP server: MCP SSE 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 |
| Generate a personalized greeting message |
| Get the current date/time (with optional timezone) |
| Perform arithmetic (add, subtract, multiply, divide) |
| Save a note with a key |
| Retrieve a saved note by key |
| List all saved note keys |
| Get server system information |
Endpoints
Endpoint | Method | Transport | Description |
| GET | - | Health check |
| GET | SSE | SSE connection (legacy transport) |
| POST | SSE | SSE message handler |
| 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 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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/ajitnk-lab/mcp-server-ngrok'
If you have feedback or need assistance with the MCP directory API, please join our Discord server