Universal MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Bind host de los transportes HTTP. | 127.0.0.1 |
| MCP_PORT | No | Bind port de los transportes HTTP. | 8000 |
| MCP_LOG_LEVEL | No | Nivel de log (siempre a stderr). | INFO |
| MCP_TRANSPORT | No | Transporte del servidor: stdio | streamable-http | sse. | stdio |
| MCP_PLUGIN_DIRS | No | Directorios de plugins externos. | |
| MCP_SERVER_NAME | No | Nombre visible por el cliente. | universal-mcp |
| MCP_ENABLE_SHELL | No | Habilita system_run_command. ⚠️ | false |
| MCP_HTTP_TIMEOUT | No | Timeout HTTP en segundos. | 15 |
| MCP_WORKSPACE_DIR | No | Sandbox para files_* y data_*. | ./workspace |
| MCP_DISABLED_MODULES | No | Módulos a omitir, p. ej. system,ai. | |
| MCP_MAX_OUTPUT_CHARS | No | Truncado de cuerpos HTTP. | 20000 |
| MCP_HTTP_BLOCK_PRIVATE | No | Bloquea IPs privadas/loopback (anti-SSRF). | true |
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 |
|---|---|
| ai_text_statsB | Text metrics: chars, words, unique words, sentences, paragraphs, reading time. |
| ai_summarizeA | Extractive summary: picks the most relevant sentences (word-frequency scoring, ES/EN stopwords) keeping original order. Max 10 sentences. |
| ai_sentimentA | Lexicon-based sentiment for Spanish/English text. Returns score in [-1,1] and label. |
| ai_keywordsB | Top keywords by frequency (stopwords ES/EN removed). |
| ai_extractA | Extract entities by regex: kind ∈ {emails, urls, phones, numbers}. |
| ai_slugifyA | Convert text to a URL-friendly slug (ASCII, hyphen-separated). |
| analysis_statsB | Descriptive statistics for a list of numbers: n, sum, mean, median, min/max, stdev, variance and percentiles (p25/p50/p75/p90). |
| analysis_math_evalA | Safely evaluate an arithmetic expression: + - * / // % **, parentheses, sqrt/sin/cos/tan/log/exp/abs/floor/ceil/round/min/max and pi/e/tau. No code execution. |
| analysis_linear_regressionB | Fit y = slope·x + intercept by least squares. Returns slope, intercept, r, r_squared and the equation string. |
| analysis_correlationC | Pearson correlation coefficient (r, r², direction, strength). |
| analysis_frequencyB | Count occurrences of each item and return the most common ones. |
| automation_http_requestB | Perform an HTTP request (GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS). Private/internal hosts are blocked by default (anti-SSRF). Body is truncated. |
| automation_send_webhookB | POST a JSON payload to a webhook URL (adds X-Webhook-Secret header if provided). |
| automation_uuid4A | Generate a random UUID v4 string. |
| automation_timestampA | Current time: unix epoch and ISO-8601 UTC. |
| automation_waitA | Sleep for N seconds (0.01–60). Useful for polling and retries. |
| data_read_csvB | Read a CSV file from the sandbox. Returns columns, sample rows and totals. |
| data_read_jsonB | Read and parse a JSON file from the sandbox (max 10 MB). |
| data_flatten_jsonC | Flatten nested JSON objects/arrays into a single-level dict with dotted keys. Pass data as a JSON value. |
| data_sqlite_queryB | Run a READ-ONLY SQL query (SELECT/WITH) against a SQLite file in the sandbox. Writes and DDL are blocked. |
| data_to_jsonB | Serialize any JSON-serializable data into a pretty JSON string. |
| files_list_filesB | List files/folders in the sandboxed workspace (relative paths only). |
| files_read_fileB | Read a UTF-8 text file from the sandbox (max_bytes caps the output). |
| files_write_fileB | Write/append UTF-8 text to a file in the sandbox. Creates parent folders. |
| files_delete_fileB | Delete a file (never a directory) from the sandbox. |
| files_search_filesC | Grep-like text search across sandbox files. Supports literal or regex queries. Returns matching file paths with line numbers. |
| system_infoA | Get host system information: OS, python, CPUs, hostname, cwd. |
| system_nowA | Current date/time in a given IANA timezone (e.g. 'America/Bogota', 'UTC'). |
| system_disk_usageC | Disk usage statistics (total/used/free bytes and percent) for a path. |
| system_env_varsA | List environment variables (optionally by prefix). Secret-looking values are masked. |
| system_run_commandB | Execute a shell command on the host. DISABLED unless the server was started with MCP_ENABLE_SHELL=true. Use with extreme caution. |
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 31 tools
Most tools are clearly separated by domain prefix and specific action, such as files_read_file versus data_read_csv. A few overlaps remain: automation_timestamp and system_now both return current time, and automation_http_request overlaps with automation_send_webhook for webhook-style POSTs.
Names consistently use snake_case with a domain prefix (analysis_, ai_, automation_, data_, files_, system_), making the set predictable. Minor deviations exist because some suffixes are nouns (analysis_stats, system_info) while others are actions (files_read_file).
With 31 tools, the server is heavy for an agent-facing MCP surface and includes many small utility operations. While the 'Universal' scope explains some breadth, the count exceeds the 25+ threshold where tools risk becoming hard to scan and select.
The surface covers many common utility domains: file CRUD/search, CSV/JSON/SQLite reading, statistics, text analysis, HTTP/webhook automation, and system inspection. Gaps remain, such as no CSV/JSON write operations, no file move/copy, and read-only SQLite, but these are mostly workaroundable.