An MCP server for the Enterprise Financial Management System (EFMS) that provides tools for managing financial transactions, departments, cost centers, partners, and user tasks. Supports both stdio and HTTP (SSE) transports with token-based authentication.
The EFMS server has 11 tools with basic descriptions, but exhibits significant gaps in schema documentation, parameter validation, and error handling. Most tools lack visible input parameter schemas despite being defined in code. Descriptions are present but often generic or in Vietnamese without English context. Output schemas are not documented. Several tools accept optional parameters without clear constraints. Error handling exists but returns plain strings without structured guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite the server implementing both read-only and write operations.
Execute a SELECT query on the EFMS PostgreSQL database. Can be used to analyze trends, join tables (e.g., transactions with departments), and produce custom financial reports.
Lấy danh sách các trung tâm chi phí (Cost Centers), có thể lọc theo Department ID.
Get the complete EFMS Database schema structure, including table names and columns. Always run this before trying to write an SQL query.
Lấy danh sách các phòng ban (Departments).
Lấy thông tin hồ sơ của người dùng đang đăng nhập (bao gồm user ID, email, phòng ban).
Lấy danh sách đối tác/đối tượng giao dịch (Partner Counterparty).
Descriptions in Vietnamese without English translation; brevity makes them unhelpful for LLM tool selection
Missing input parameter schemas for most tools; pydantic models used internally but not reflected in tool registration
No output schemas documented; LLM cannot know what fields to expect from tool responses
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 34 | - | v1 |
Lấy thông tin chi tiết của một giao dịch theo Transaction ID (UUID).
Lấy danh sách các giao dịch thanh toán.
Lấy danh sách nhiệm vụ của người dùng (User Tasks), có thể lọc theo trạng thái.
Xử lý hành động trên một User Task (như APPROVED, REJECTED).
Cập nhật thông tin một giao dịch hiện có qua Transaction ID (UUID). Sử dụng schema chi tiết để điền các thông tin thay đổi.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read vs. write distinction
Pagination parameters (page, page_size) lack constraints (min/max values); LLM could pass arbitrary values
Error responses are generic strings; no structured error codes, recovery guidance, or actionable next steps
Authentication token handled via env and passed to wrap_api_call; no clear token injection pattern documented in tool descriptions
execute_sql_query accepts arbitrary SQL with no injection guard or allowlist; major security risk