Skip to main content
Glama
quanlh30504

mcp-all-in-one

by quanlh30504
README.md
# mcp-all-in-one

MCP server dạng modular monolith để kết nối nhiều provider qua một gateway có
permission, policy, secret boundary, output sanitization và audit thống nhất.

Server hiện chạy MCP qua stdio và có các provider:

- **Redash**: implementation hoàn chỉnh để đọc query metadata, cached results,
  refresh/poll query results, query allowlist và giới hạn output.
- **PostgreSQL**: scaffold metadata/tool policy; adapter database vẫn là TODO.
- **GitHub**: scaffold read-only tools; adapter API vẫn là TODO.

## Chạy nhanh với Redash và Docker

```bash
cp .env.example .env
# Sửa REDASH_URL, REDASH_API_KEY, REDASH_QUERY_ALLOWLIST trong .env
docker compose build
docker compose run --rm -T mcp-server
```

Lệnh cuối là MCP stdio process nên sẽ chờ JSON-RPC trên stdin, không in menu
interactive. Bình thường MCP client sẽ start process này.

## Chạy native

```bash
npm ci
npm run typecheck
npm test
npm run build

export REDASH_URL=https://redash.example.com
export REDASH_API_KEY=your-key
export REDASH_QUERY_ALLOWLIST=123,456
npm start
```

## Tài liệu

- [Setup server và cấu hình MCP clients](docs/setup-and-client-guide.md)
- [Redash provider](src/providers/redash/README.md)
- [Configuration](docs/configuration-guide.md)
- [Provider development](docs/provider-development-guide.md)
- [Architecture](docs/architecture.md)
- [Security model](docs/security-model.md)

## Kiểm tra

```bash
npm run typecheck
npm test
npm run build
```

Config và secret tuân theo nguyên tắc: YAML chỉ chứa `*_ref`; secret thật được
resolve server-side và không được trả về MCP result, log hoặc audit record.

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct function: listing connections, retrieving query metadata, fetching cached results, and executing queries. Descriptions clearly differentiate them, especially the cached vs. fetch variants.

Naming Consistency4/5

All tools follow a 'redash.<verb>_<noun>' pattern with consistent use of underscore. Minor inconsistency between 'get' and 'fetch' for result retrieval, but overall predictable.

Tool Count3/5

4 tools is a small set for a Redash integration, barely covering basic operations. While not extreme, it feels slightly underpowered for typical usage.

Completeness2/5

Missing essential tools like listing queries or managing connections. Only allows reading allowlisted queries by known ID, leaving significant gaps for agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues