Skip to main content
Glama

๐Ÿค– kurigram-mcp

Debug Telegram bots with AI โ€” a local MCP server that drives your Telegram user session over MTProto.

PyPI Version Python Versions License

English ยท ็ฎ€ไฝ“ไธญๆ–‡


โœจ Features

๐Ÿ”Œ Standard MCP

Streamable HTTP transport, 2026-07-28 protocol, backward-compatible with 2025-11-25 clients (Claude Code, Codex, DSH)

๐Ÿงช Bot debugging

Send /start, measure reply latency, wait for events, drain update streams

๐Ÿ› ๏ธ Deep debugging

raw_invoke any MTProto function, with built-in API discovery

๐Ÿ”’ Chat whitelist

Per-client control via request header, fail-closed by default

โšก Stateless

Server restarts don't break connected clients

๐Ÿš€ Zero config

uv tool install, interactive setup wizard, one-command login

๐Ÿš€ Quick Start

# 1. Install (provides `kurigram-mcp` and the `km` alias)
uv tool install kurigram-mcp

# 2. One-time setup: API_ID / API_HASH / whitelist / proxy / port
#    AUTH_TOKEN is auto-generated if left blank (Bearer auth on by default)
km setup

# 3. Log in (skip if you chose to during setup): phone โ†’ code โ†’ 2FA
km auth

# 4. Start the server
km run     # default: http://127.0.0.1:8765/mcp

Get API_ID / API_HASH from my.telegram.org/apps. Login must be performed by you โ€” credentials never leave your machine.

๐Ÿงฐ Tools (22)

Group

Tools

๐Ÿงพ Session

whoami, mcp_get_server_info

๐Ÿ“ค Send

send_message, send_photo, send_document, edit_message, delete_message, send_chat_action, start_bot, click_inline_button, send_reaction

๐Ÿ“ฅ Read

get_chat, get_chat_history, get_messages, get_dialogs, search_messages, download_media

โฑ๏ธ Events

wait_for_update, drain_updates

๐Ÿ”ฌ Deep

raw_invoke, list_raw_methods, get_raw_method_info

Errors follow a stable [CODE] message format: NOT_WHITELISTED ยท FLOOD_WAIT {seconds} ยท SESSION_INVALID ยท RPC ยท NETWORK ยท INTERNAL.

๐Ÿ”Œ Client Setup

# Claude Code
claude mcp add --transport http kurigram-mcp http://127.0.0.1:8765/mcp \
  --header "Authorization: Bearer <AUTH_TOKEN>" \
  --header "X-Kurigram-Allowed-Chats: 6540476263"   # optional per-client whitelist
# Codex (~/.codex/config.toml)
[mcp_servers.kurigram-mcp]
url = "http://127.0.0.1:8765/mcp"
http_headers = { "Authorization" = "Bearer <AUTH_TOKEN>", "X-Kurigram-Allowed-Chats" = "6540476263" }
# DSH โ€” cordis.yml plugin row (@deepseek-ai/dsh-mcp-client)
- id: mcp-kurigram
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: kurigram
    transport: streamable-http
    url: http://127.0.0.1:8765/mcp
    headers:
      Authorization: !!js '`Bearer ${process.env.KURIGRAM_TOKEN}`'
      X-Kurigram-Allowed-Chats: '6540476263'

๐Ÿ” Chat Whitelist

  1. Request header X-Kurigram-Allowed-Chats โ€” per-client declaration (comma-separated: numeric chat ids, @username, me).

  2. Config allowed_chat_ids โ€” fallback when the header is absent.

Fail-closed: chats outside the whitelist are rejected with [NOT_WHITELISTED]; get_dialogs only returns whitelisted chats.

โš™๏ธ Configuration

All configuration lives in one file: ~/.kurigram-mcp/config.yaml.

api_id: 123456
api_hash: your_hash
allowed_chat_ids: "123456789,me"   # fallback whitelist
host: 127.0.0.1
port: 8765
auth_token: auto_generated_or_yours # Bearer auth
proxy: ""                           # optional, e.g. socks5://127.0.0.1:1080

๐Ÿ“ Data & Files

~/.kurigram-mcp/
โ”œโ”€โ”€ config.yaml         # setup-generated config (chmod 600)
โ”œโ”€โ”€ u_{API_ID}.session  # Telegram session (bound to API_ID, persists)
โ””โ”€โ”€ downloads/          # download_media output

๐Ÿง‘โ€๐Ÿ’ป Development

uv sync
uv run pytest
uv run ruff check src tests scripts

# Configure like a regular user (shared ~/.kurigram-mcp):
uv run kurigram-mcp setup
# Or isolate a dev environment (never touches your real config):
# KURIGRAM_MCP_HOME=$PWD/.dev-home uv run kurigram-mcp setup
# KURIGRAM_MCP_HOME=$PWD/.dev-home uv run kurigram-mcp run

๐Ÿ“„ License

MIT

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

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

  • Telegram bridge for your MCP-compatible agent. Bidirectional, no LLM in our stack.

  • Multi-tenant Telegram gateway for AI agents โ€” HTTP+stdio, 8 tools, MTProto User API

  • MCP server for Gainium โ€” manage trading bots, deals, and balances via AI assistants

View all MCP Connectors

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/z-mio/kurigram-mcp'

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