mcp-utility-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| file_convertA | Convert between MD/HTML/CSV/JSON/Text formats.Supported: md -> html | txt | json html-> md csv -> json | md_table json-> csv | md_table | pretty txt -> md Returns dict: {status, output_path, output_format, preview, error?} |
| page_monitorA | Check URL for changes; persist hash; notify Telegram on change.State stored in ~/.hermes/monitors/<sha256(url)[:16]>.json. Returns dict: {status, url, hash, is_first_check, changed, diff_summary, sent_to_telegram, error?} |
| telegram_pollC | Send a Telegram Poll to configured/default chat.Returns dict: {status, message_id, poll_id, chat_id, question, error?} |
| trade_signalA | Binance OHLCV → RSI(14) + SMA20/SMA50 cross → BUY/SELL/HOLD.symbol examples: BTCUSDT, ETHUSDT, SOLUSDT interval: 1h | 4h | 1d | 1w Returns dict: {status, symbol, interval, price, rsi, ma_fast, ma_slow, ma_signal, signal, error?} |
| backtest_reportA | Parse Freqtrade backtest-result JSON → markdown digest.Returns dict: {status, strategy, timeframe, trades_total, profit_pct, winrate_pct, avg_profit_pct, top_trades_md, hourly_md, error?} |
| word_of_dayA | German word of the day with translations + IPA + examples.level: A1 | A2 Selection is deterministic (hash of date+level) — same word all day. Returns dict: {status, word, level, pos, translations, examples, pronunciation_url, fetched_at} |
| soc_lang_cardA | Daily language card: German word (A1/A2) + SOC term (EN/DE/RU).level: A1 | A2 focus: optional context filter: 'SOC Fundamentals' | 'Detect' | 'Triage' | 'Correlate' | 'Respond' | 'Visualize' | 'Notify' | 'Interview' Selection is deterministic (hash of date) — same card all day. Returns dict: {status, selected_for_date, german_word, soc_term, fetched_at} |
| weather_alertA | Check weather for cities; return alerts when thresholds exceeded.Default cities: Sumy, Lviv, Budapest, Vienna. Open-Meteo (no API key required). Returns dict: {status, cities_checked, alerts:[{city,condition,value,threshold,severity}], errors} |
| antimatter_scanA | Scan Freqtrade logs for trades / errors / signals.logs_path: file path (e.g. /tmp/freqtrade.log) OR "docker:container_name" Returns dict: {status, source, lines_scanned, trades_count, buy_count, sell_count, errors_count, signals_count, recent_errors, recent_signals, score, error?} |
| mcp_statsA | observability — Snapshot of in-memory retry counter per tool. Returns dict: {status, stats:{tool: {retries, events, last_status, last_error, last_at}}, total_retries, total_events, stats_path, snapshot_at} Same data is also persisted to the stats JSON file for cross-process visibility. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools target clearly distinct functions such as file conversion, Telegram polls, trading signals, weather alerts, and log scanning. The main ambiguity is between word_of_day and soc_lang_card, since both serve daily German A1/A2 content and soc_lang_card largely supersedes word_of_day.
All names use lowercase snake_case, but the pattern is inconsistent: some are noun_action (file_convert, page_monitor), while others are noun_noun or phrase-like (mcp_stats, soc_lang_card, word_of_day). The names are readable but not highly predictable.
Ten tools is a reasonable count for a general utility server and none are clearly redundant. However, the server has no unified scope—monitoring, trading, language learning, weather, and observability are all mixed together—so the count fits numerically but the scope is broad.
Individual utilities are mostly self-contained, but there are notable gaps: page_monitor lacks monitor management, weather_alert has no city configuration, and the trading/log tools are one-shot analyzers without related operations. Because the server's domain is generic 'utilities,' completeness is hard to establish.