Cripto Norte Telegram MCP Server
README.md
# Cripto Norte — Telegram MCP server
Remote MCP server with one tool, `post_to_telegram_channel`, that lets Claude
publish a finished post to your Telegram channel. Tested locally end-to-end
(MCP handshake, tool listing, tool call, error handling) — ready to deploy.
## 1. Create the Telegram bot
1. In Telegram, open **@BotFather** → `/newbot` → follow the prompts.
2. Copy the token it gives you (`TELEGRAM_BOT_TOKEN`).
3. Add the bot to your channel as an **admin** with permission to post messages.
4. Your `TELEGRAM_CHAT_ID` is your channel's `@username` (if public) or its
numeric ID (if private — get it by forwarding a channel message to
**@userinfobot** or similar).
## 2. Deploy the server
Any Node.js host that gives you a public HTTPS URL works. Easiest options:
**Railway / Render (free tier works for this)**
1. Push this folder to a new GitHub repo.
2. Create a new Web Service on Railway or Render, point it at the repo.
3. Set the environment variables from `.env.example` (real values) in the
host's dashboard.
4. Build command: `npm install`. Start command: `npm start`.
5. Once deployed, note the public URL, e.g. `https://your-app.up.railway.app`.
The MCP endpoint is `https://your-app.up.railway.app/mcp`.
**Fly.io / a VPS** work too — same env vars, same `npm start`, just expose
port 3000 (or whatever `PORT` you set) over HTTPS.
Locally, `npm install && npm start` runs it on `http://localhost:3000/mcp` for testing.
## 3. Connect it to Claude
1. In Claude: **Customize → Connectors → + → Add custom connector**.
2. Name: `Cripto Norte Telegram`.
3. URL: `https://your-app.up.railway.app/mcp`.
4. Advanced settings: since this server checks a simple Bearer token
(`MCP_AUTH_TOKEN`) rather than full OAuth, check whatever your Claude
plan's custom-connector UI currently offers for a static bearer token —
this has changed recently, so if you don't see that option, it's worth
checking support.claude.com for the current field name, or dropping the
`MCP_AUTH_TOKEN` check entirely for a first personal test.
5. Click **Add**, then **Connect**.
6. In a chat, click **+ → Connectors** and enable it for that conversation.
## 4. Test it
Ask Claude in that conversation: "send a test message to the Telegram
channel using the connector." It should call `post_to_telegram_channel` and
you'll see the message land in your channel.
## 5. Wire it into a scheduled task
In Claude Cowork → Scheduled → New task → Set up manually:
- Enable the `Cripto Norte Telegram` connector for the task.
- Prompt: reference the `cripto-norte-posts` skill, the post type
(UTRNNIK / digest), where to pull current prices/news from, and an
explicit instruction to call `post_to_telegram_channel` with the
finished, formatted text.
- Set the cadence (e.g. daily 08:30 and 19:00 local time).
- Start with approval mode "requires confirmation," switch to automatic
once you've checked a few runs.
## Notes
- The server keeps sessions in memory. If it restarts, Claude just
re-initializes on the next call — no action needed.
- `parse_mode: "Markdown"` is used when sending, matching the skill's
formatting rules (monospace titles, bold figures, em dash in headers only).
- If you ever need more tools (e.g. posting to multiple channels, or
separate tools per coin), add more `server.registerTool(...)` blocks in
`index.js` following the same pattern.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues