telegram-news-mcp
Ranks posts from Telegram channels and exposes them through an MCP tool (getTopNews), supporting time periods and include/exclude channel filters.
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., "@telegram-news-mcpFind the top news from Telegram channels in the last 12 hours"
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.
Telegram news and Spotify discovery MCP
The project exposes two independent user-account integrations through one REST service and a Streamable HTTP MCP server:
getTopNewsranks recent posts from Telegram channels.createSpotifyDiscoveryPlaylistbuilds a Spotify playlist from the user's top tracks and similar tracks returned by Last.fm.
Setup
Create a Telegram application at https://my.telegram.org, then configure its credentials:
cp .env.example .env # Edit .env and set TELEGRAM_API_ID and TELEGRAM_API_HASH.Authorize manually. This command is interactive and may ask for the phone number, Telegram code, and the account's 2FA password. It creates
data/telegram.session; neither MCP nor OpenClaw takes part in this flow.docker compose run --rm telegram-authStart both services:
docker compose up -d --build
The REST endpoint is internal to Docker Compose. mcp-server is a persistent
Streamable HTTP server. Its port is bound to 127.0.0.1 only, so it is
reachable by OpenClaw on the same host but not exposed publicly.
Related MCP server: News Digest
OpenClaw MCP configuration
Configure an HTTP MCP server with this local URL:
http://127.0.0.1:8001/mcpInstall openclaw-skill/telegram-top-news and
openclaw-skill/spotify-discovery-playlist as OpenClaw skills. They document
their tools and tell agents to report required manual authorization without
requesting credentials.
REST request
{
"period": "9h32m",
"exclude_mode": true,
"excluded_channels": ["@noisy_channel"],
"included_channels": []
}period accepts non-zero compact durations from weeks, days, hours, and
minutes (1w, 1d, 9h32m). With exclude_mode: false, specify at least one
channel in included_channels. A selector can be a title, username,
@username, ID, or -100-prefixed ID.
Spotify discovery playlists
Create a Spotify app in the Spotify Developer Dashboard. Add this exact Redirect URI to the app:
http://127.0.0.1:8888/callbackPut its Client ID (never a client secret) in .env as SPOTIFY_CLIENT_ID.
In Development Mode, also add the Spotify account as a test user. The app
requests user-top-read, user-library-read, playlist-read-private,
playlist-read-collaborative, playlist-modify-private, and
playlist-modify-public. If Spotify was authorized before the library-read
scopes were added, repeat the manual authorization flow to issue a refresh
token with the new grants.
Create a Last.fm API key at https://www.last.fm/api/account/create and set
LASTFM_API_KEY. It is used only to obtain similar tracks; Spotify remains the
catalogue lookup and playlist destination. Spotify's Recommendations endpoint
is deliberately not called: it returns 404 for new Development Mode apps
without Extended access.
Authorize manually in a local browser:
cp .env.example .env
# Set SPOTIFY_CLIENT_ID and LASTFM_API_KEY in .env.
docker compose --profile spotify-auth run --rm --service-ports spotify-authThe PKCE callback verifies OAuth state and saves only the refresh token in
data/spotify/refresh-token.json, with owner-only permissions. data/ and
.env are git-ignored. Do not copy the token into chat, an MCP request, or
source control. Afterwards start the normal services:
docker compose up -d --buildREST request
POST /spotify/discovery-playlist creates a private playlist by default:
{
"top_n": 35,
"playlist_name": "Fresh discoveries",
"public": false
}top_n is limited to 1–35. The service reads short-, medium-, and long-term
top tracks (at most Spotify's 50-track response limit), randomly selects
diverse seeds, queries Last.fm with bounded concurrency and a TTL cache, then
matches the best candidates back to Spotify by both title and artist. Before
asking Last.fm, it reads the current user's saved tracks and all readable
playlist items, then excludes those tracks from new recommendations. The
intentional source portion—up to 25% known tracks (at most 10)—is not filtered.
The response includes the playlist URL, actual counts, temporal seed quotas,
the number of familiar recommendations excluded, unreadable-playlist count, and
warnings if a catalogue segment ran short.
If authorization is missing or its refresh token lacks library-read scopes,
REST and MCP return SPOTIFY_AUTH_REQUIRED; rerun the manual authorization
command. They never ask for a Spotify password or authorization code. See
SPOTIFY_ALGO.md for the complete selection algorithm,
rate limits, and filtering behavior.
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.
Related MCP Connectors
Publish, search, and promote time-sensitive news and messages through a public remote MCP server.
Cross-source news (AP, BBC, NPR, HN, Google News) with topic filtering and dedup.
MCP server for Google search results via SERP API
MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceReads public Telegram channel pages and exposes them as MCP tools over Streamable HTTP/JSON-RPC, enabling retrieval of channel info, latest posts, and search without Telegram API credentials.1MIT
- AlicenseNot gradedqualityAmaintenanceFetches news from Telegram and RSS sources and serves them to LLM agents via MCP.264Apache 2.0
- FlicenseNot gradedqualityBmaintenanceCaches Telegram channel posts locally in SQLite and exposes them via MCP tools for querying and management.
- AlicenseNot gradedqualityCmaintenanceMCP server that reads Telegram groups and channels via MTProto to produce source-linked summaries with participant contributions, decisions, and risks over specified time ranges.192MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/gerarte04/openclaw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server