A comprehensive MCP server laboratory providing tools for API contract management, database operations (Oracle, SQL Server, Redis, Elasticsearch), document processing, messaging (RabbitMQ, Mosquitto), Docker management, OIDC identity, and email handling.
MCP Lab provides 37 tools across 5 domains (API contracts, Elasticsearch, Oracle, Redis, document reading). Tool naming follows verb_noun convention (ListConnections, GetSpecSummary, InvokeEndpoint, etc.), which is good. However, descriptions are inconsistent in quality and length. Many descriptions are terse (10-30 chars) or written in Chinese, making LLM interpretation difficult. Input schemas are present but lack depth: most parameters have type and description, but enums are missing for constrained inputs (e.g., 'method' accepts arbitrary strings instead of GET|POST|PUT|DELETE). Output schemas are not documented anywhere in the provided code. Error handling guidance is absent, tools do not indicate what to do on failure. Security concerns exist: InvokeEndpoint accepts arbitrary headers and body JSON, risking injection attacks. Base64 variants (SearchBase64, IndexDocumentBase64, QueryBase64, ExecuteBase64) suggest character-encoding issues in the transport layer, which should be fixed upstream rather than worked around with Base64 wrappers. Overall, the server is functional but lacks production-grade polish.
比較 baseline 與 candidate OpenAPI spec 的 endpoint/status drift
刪除一個或多個 key(以逗號分隔)
描述 Oracle 資料表欄位結構
執行 Oracle SQL / PL/SQL(INSERT / UPDATE / DELETE / DDL / ANONYMOUS BLOCK)。禁止 DROP TABLE、TRUNCATE;DELETE/UPDATE 必須附帶有意義的 WHERE 條件。
執行 Oracle SQL / PL/SQL(Base64)。避免傳輸過程清洗字元。當字串常值、JSON 等內容被清洗(例如單引號消失)時,請改用本工具。禁止 DROP TABLE、TRUNCATE;DELETE/UPDATE 必須附帶有意義的 WHERE 條件。
取得叢集健康狀態
取得指定 path 與 method 的 OpenAPI operation JSON
取得 Redis 伺服器資訊(指定 section,預設 server)
Descriptions are inconsistent in quality and often too brief (<50 chars). Many are in Chinese, limiting LLM comprehension. Examples: 'ListRuntimeLimits' (40 chars), 'GetMapping' (40 chars). LLMs need 50-200 char descriptions to disambiguate tool selection.
No output schemas documented. Tools return data but LLMs cannot predict field names, types, or structure. This forces agents to guess and wastes tokens on trial-and-error parsing.
Constrained inputs lack enums. 'method' parameter accepts arbitrary strings instead of GET|POST|PUT|DELETE|PATCH. 'section' in GetInfo accepts free-form text instead of enum(server|clients|memory|stats|replication|all). LLMs hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
取得指定 key 的值(自動偵測型別)
取得 key 的剩餘存活時間(秒)
取得 key 的型別
取得索引的 mapping 結構
讀取 OpenAPI spec 摘要
建立或覆寫指定 ID 的文件(id 留空則自動產生)
建立或覆寫指定 ID 的文件(Base64)。避免傳輸過程清洗字元。當文件 JSON 被清洗或內容失真時,請改用本工具。
依 profile 呼叫 API endpoint;預設關閉,需設定 INVOKE_ENABLED=true 並通過 method allow-list
列出所有已設定的 Redis 連線
列出所有已設定的 Elasticsearch 連線
列出所有已設定的 Oracle 連線
列出所有已設定的 API contract profiles,不回傳 auth header value
列出 OpenAPI endpoints,可依 path prefix、method 或 tag 篩選
列出所有索引(名稱、文件數、大小)
列出符合 pattern 的 keys(預設最多 100 個)
列出目前生效的 Oracle runtime limit 設定
列出目前生效的 Elasticsearch runtime limit 設定
列出目前生效的 Redis runtime limit 設定
列出 Oracle 資料表(owner 省略則顯示目前使用者的)
測試 Elasticsearch 連線(回傳叢集名稱與版本)
測試 Redis 連線是否正常(PING)
測試 Oracle 連線是否正常
執行唯讀 Oracle SQL 查詢(僅允許 SELECT / WITH)
執行唯讀 Oracle SQL 查詢(Base64)。避免傳輸過程清洗字元。當字串常值、JSON 等內容被清洗(例如單引號消失)時,請改用本工具。
搜尋文件。query_body 為 JSON 格式的 ES 查詢,或純文字(自動轉 match 查詢)
搜尋文件(Base64)。避免傳輸過程清洗字元。當查詢 JSON 被清洗或內容失真時,請改用本工具。
設定 string key 的值(可選 TTL 秒數)
設定 key 的 TTL(秒)
以有限 OpenAPI response schema 檢查 status code 與 JSON body
Base64 wrapper tools (SearchBase64, IndexDocumentBase64, QueryBase64, ExecuteBase64) indicate character-encoding issues in HTTP transport. This should be fixed at the protocol layer (proper UTF-8 handling) rather than worked around with Base64 encoding.
InvokeEndpoint accepts arbitrary 'headersJson' and 'bodyJson' without validation. No input sanitization against injection attacks. Tool description does not warn about security implications or rate limits.