$npx -y skills add EXboys/evotown --skill database-query通过 Evotown Database MCP Proxy 对已注册的业务数据库执行只读 SQL 查询。当用户需要查 CRM、订单、报表等结构化数据时使用;禁止直连数据库或写入 SQL。
| 1 | # Database Query Skill |
| 2 | |
| 3 | 通过 **Evotown Database MCP Proxy** 查询企业已注册数据库。Skill **不持有**连接串;权限由 Evotown ACL + Proxy 校验。 |
| 4 | |
| 5 | ## 前置条件 |
| 6 | |
| 7 | 1. 管理员在 Evotown 控制台注册数据库并配置 MCP 地址 |
| 8 | 2. 当前员工 API Key 已被授权访问目标 `connection_id` |
| 9 | 3. MCP Proxy 服务已启动(`EVOTOWN_DB_MCP_URL`,默认 `http://localhost:9100`) |
| 10 | |
| 11 | ## 动作 |
| 12 | |
| 13 | | action | 说明 | |
| 14 | |--------|------| |
| 15 | | `list_connections` | 列出当前员工可访问的数据库 | |
| 16 | | `list_tables` | 列出某库的表 | |
| 17 | | `query` | 执行只读 SELECT(Proxy 自动加 LIMIT,拒绝 INSERT/UPDATE/DELETE) | |
| 18 | |
| 19 | ## 示例 |
| 20 | |
| 21 | ### 列出可访问数据库 |
| 22 | |
| 23 | ```json |
| 24 | { |
| 25 | "action": "list_connections", |
| 26 | "api_key": "evk_..." |
| 27 | } |
| 28 | ``` |
| 29 | |
| 30 | ### 查表 |
| 31 | |
| 32 | ```json |
| 33 | { |
| 34 | "action": "list_tables", |
| 35 | "connection_id": "crm-demo", |
| 36 | "api_key": "evk_..." |
| 37 | } |
| 38 | ``` |
| 39 | |
| 40 | ### 只读查询 |
| 41 | |
| 42 | ```json |
| 43 | { |
| 44 | "action": "query", |
| 45 | "connection_id": "crm-demo", |
| 46 | "sql": "SELECT id, name, amount FROM orders WHERE status = 'paid'", |
| 47 | "api_key": "evk_..." |
| 48 | } |
| 49 | ``` |
| 50 | |
| 51 | 也可设置环境变量 `EVOTOWN_EMPLOYEE_API_KEY`,省略 `api_key` 字段。 |
| 52 | |
| 53 | ## Runtime |
| 54 | |
| 55 | ```yaml |
| 56 | entry_point: scripts/main.py |
| 57 | language: python |
| 58 | network: |
| 59 | enabled: true |
| 60 | outbound: |
| 61 | - "*:9100" |
| 62 | - "*:8765" |
| 63 | input_schema: |
| 64 | type: object |
| 65 | properties: |
| 66 | action: |
| 67 | type: string |
| 68 | enum: [list_connections, list_tables, query] |
| 69 | default: query |
| 70 | connection_id: |
| 71 | type: string |
| 72 | description: Evotown 注册的 connection_id |
| 73 | sql: |
| 74 | type: string |
| 75 | description: 只读 SELECT / WITH / EXPLAIN 语句 |
| 76 | api_key: |
| 77 | type: string |
| 78 | description: 员工 evk_ API Key(可改用环境变量 EVOTOWN_EMPLOYEE_API_KEY) |
| 79 | required: [] |
| 80 | ``` |