Token导航 LogoToken导航TokenDH.com
mr MCP logo
数据服务未说明官方级别未说明来源级核验

mr MCP

MCP Server

一个基于HTTP的轻量级服务器,提供CSV文件操作、数据分析及HTML图表生成功能,适用于数据处理和可视化场景。

工具数

7

提示词数

0

GitHub Stars

0

资源数

0
数据分析TypeScript数据可视化HTTP服务

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

PKrokosz

提供方

PKrokosz

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mr-mcp

Minimalny serwer Model Context Protocol (MCP) udostępniający narzędzia HTTP do operacji na plikach i danych CSV oraz generowania infografik HTML.

Source: manifest.json:2-7

Spis treści

Architektura

flowchart TD
  Client((Klient HTTP)) -->|GET /healthz\nGET /.well-known/mcp/manifest\nGET /| FastifyServer
  Client -->|POST /tools/call| FastifyServer
  Client -->|POST /infographics| FastifyServer
  FastifyServer -->|Ładuje manifest| Manifest[manifest.json]
  FastifyServer -->|Statyczne GUI| PublicIndex[src/public/index.html]
  FastifyServer -->|Deleguje| ToolRegistry[src/tools/index.ts]
  ToolRegistry --> PingTool[ping]
  ToolRegistry --> ReadTool[read_file]
  ToolRegistry --> WriteTool[write_file]
  ToolRegistry --> ListTool[list_files]
  ToolRegistry --> ParseTool[parse_csv]
  ToolRegistry --> AnalyzeTool[analyze_data]
  ToolRegistry --> InfographicTool[generate_infographic]
  InfographicTool -->|Czyta CSV| ParseTool
  InfographicTool -->|Zapisuje HTML| WriteTool
Source: src/server.ts:57-151, src/tools/index.ts:29-117, src/tools/generate_infographic.ts:41-140, src/tools/parse_csv.ts:32-62, src/tools/write_file.ts:32-43

Możliwości i funkcje (Capabilities)

  • Monitorowanie kondycji serweraGET /healthz zwraca {"status":"ok"} do sond zdrowotnych; wywołanie: curl http://localhost:8765/healthz; brak skutków ubocznych.

> Source: src/server.ts:62-63

  • Udostępnianie manifestu MCPGET /.well-known/mcp/manifest zwraca manifest uzupełniony o dynamicznie rejestrowane narzędzia; wywołanie: curl http://localhost:8765/.well-known/mcp/manifest; efekt: JSON opisujący endpointy i schematy.

> Source: src/server.ts:64-67, src/tools/index.ts:29-117

  • Interfejs webowyGET / serwuje kartę HTML z dokumentacją workflow i przykładami; można otworzyć w przeglądarce (http://localhost:8765/).

> Source: src/server.ts:69-73, src/public/index.html:1-198

  • Jednolity punkt wywołań narzędziPOST /tools/call obsługuje formaty tool_use, tool_result i legacy payloady MCP; przyjmuje tool i input, waliduje przez Zod i deleguje do wybranej implementacji. Błąd walidacji skutkuje 400 Invalid input.

> Source: src/server.ts:19-127

  • Generowanie infografik przez HTTPPOST /infographics waliduje dane csvPath, outputPath, title, uruchamia narzędzie generate_infographic, zwraca 201 i rezultat MCP.

> Source: src/server.ts:75-84

  • Narzędzie ping – wejście: { "message": string }; wynik: echo i znacznik czasu ISO. Wywołanie: curl -X POST http://localhost:8765/tools/call -H 'Content-Type: application/json' -d '{"tool":"ping","input":{"message":"hello"}}'.

> Source: src/tools/ping.ts:3-35, tests/server.test.ts:58-77

  • Narzędzie read_file – wejście: { "path": string }; czyta plik w katalogu projektu; efekt: { content } lub błąd opisowy.

> Source: src/tools/read_file.ts:5-42

  • Narzędzie write_file – wejście: { "path": string, "content": string }; tworzy katalogi, zapisuje UTF-8 i potwierdza sukces.

> Source: src/tools/write_file.ts:5-43

  • Narzędzie list_files – wejście opcjonalne directory; zwraca listę nazw z dozwolonego katalogu projektu.

> Source: src/tools/list_files.ts:5-42

  • Narzędzie parse_csv – wejście path; zwraca nagłówki i wiersze (trimowane, ignoruje puste). Przy pustym pliku wynik to puste tablice.

> Source: src/tools/parse_csv.ts:5-62

  • Narzędzie analyze_data – wejście path i opcjonalna column; buduje statystyki (liczba wierszy, nazwy kolumn, próbka 3 rekordów, top wartości kolumny).

> Source: src/tools/analyze_data.ts:5-62

  • Narzędzie generate_infographic – wejście csvPath, opcjonalne outputPath, title; tworzy stylizowany HTML (do 100 pierwszych wierszy) i zapisuje na dysku.

> Source: src/tools/generate_infographic.ts:6-140

Publiczne API / Punkty wejścia

HTTP

MetodaŚcieżkaOpisKluczowe parametryWynik
GET/healthzHealth-check Fastify{ "status": "ok" }
GET/.well-known/mcp/manifestManifest MCP z listą narzędziJSON z name, tools
GET/Statyczna karta HTMLDokument GUI
POST/tools/callRouter narzędzi MCP (obsługa tool_use, tool_result, legacy)Body zawiera tool, input lub wynikOdpowiedź tool_result / tool_result_ack lub 400/404
POST/infographicsSkrót do generowania infografikicsvPath, opcjonalnie outputPath, title201, tool_result z sukcesem
Source: src/server.ts:62-127

Narzędzia MCP (wywoływane przez /tools/call)

NazwaWejście (schemat)Rezultat
ping{ message: string }Echo i ISO timestamp
read_file{ path: string }{ content: string }
write_file{ path: string, content: string }{ success: true, path }
list_files{ directory?: string="." }{ files: string[] }
parse_csv{ path: string }{ headers: string[], rows: Record[] }
analyze_data{ path: string, column?: string }Statystyki totalRows, columns, sample, opcjonalnie columnStats
generate_infographic{ csvPath: string, outputPath?: string, title?: string }{ success: true, outputPath, rowsProcessed }
Source: src/tools/index.ts:29-106, src/tools/ping.ts:3-35, src/tools/read_file.ts:5-42, src/tools/write_file.ts:5-43, src/tools/list_files.ts:5-42, src/tools/parse_csv.ts:5-62, src/tools/analyze_data.ts:5-62, src/tools/generate_infographic.ts:6-140

CLI (pnpm scripts)

KomendaCel
pnpm devUruchamia serwer Fastify w trybie watch przez tsx
pnpm buildKompiluje TypeScript do katalogu dist/
pnpm startStartuje zbudowany serwer Node.js
pnpm lintUruchamia ESLint dla plików .ts
pnpm typecheckWeryfikuje typy poprzez tsc --noEmit
pnpm test / pnpm test:watchUruchamia testy Vitest (jednorazowo lub w watch)
Source: package.json:2-30

Konfiguracja i środowisko

  • Wersje narzędzi – kontener bazuje na node:20-alpine, ustawia NODE_ENV=production oraz wymaga pnpm przez Corepack.

> Source: Dockerfile:1-21

  • Środowisko uruchomienia – domyślny port pobierany z PORT (fallback 8765); serwer nasłuchuje na 0.0.0.0.

> Source: src/server.ts:139-151

  • Pliki i katalogi robocze – wejściowe CSV przechowywane w data/, wyjściowe HTML w output/, a .gitignore pomija generowane artefakty.

> Source: .gitignore:1-9, data/responses.csv:1-6

  • Konfiguracje narzędzi developerskich – TypeScript korzysta z rootDir: src, outDir: dist, ścisły tryb; ESLint używa presetów JS/TS i reguły no-console (info/warn/error dozwolone); Vitest pracuje w środowisku Node i raportuje pokrycie.

> Source: tsconfig.json:1-17, eslint.config.js:1-18, vitest.config.ts:1-12

  • Manifest MCP – statyczny plik JSON opisuje nazwę serwera, endpoint HTTP i schematy narzędzi.

> Source: manifest.json:1-125

Instalacja i szybki start

Wariant Python

Nieustalone w repo.

Wariant Node

corepack enable # aktywuje pnpm wymagane przez build
pnpm install # instaluje zależności produkcyjne i developerskie
pnpm dev # uruchamia serwer Fastify na porcie 8765 w trybie watch
Source: Dockerfile:6-11, package.json:7-13

Po uruchomieniu można przetestować narzędzie:

curl -X POST http://localhost:8765/tools/call \
  -H "Content-Type: application/json" \
  -d '{"tool":"list_files","input":{"directory":"data"}}'
Source: tests/server.test.ts:133-148

Przepływy pracy (Sposoby pracy)

  • Praca developerskapnpm dev uruchamia serwer z logami Fastify; zmiany w kodzie ładowane na gorąco.

> Source: package.json:7, src/server.ts:57-73

  • Budowanie i publikacjapnpm build kompiluje TypeScript do dist/, a pnpm start uruchamia artefakty; kontener Docker odtwarza te kroki w warstwie build/runtime.

> Source: package.json:8-9, Dockerfile:5-22

  • Testy ciągłepnpm test uruchamia zestaw Vitest sprawdzający endpointy, walidacje i skutki uboczne (np. tworzenie plików HTML/TXT).

> Source: package.json:12, tests/server.test.ts:24-235, tests/tools.test.ts:20-61

  • Workflow „CSV → infografika” – 1) umieść dane data/responses.csv; 2) użyj analyze_data do weryfikacji; 3) wywołaj generate_infographic (HTTP lub /infographics); 4) otwórz wynik w output/.

> Source: src/public/index.html:167-197, src/tools/analyze_data.ts:35-58, src/tools/generate_infographic.ts:41-135, tests/server.test.ts:215-234

  • Uruchomienie kontenerowedocker-compose up --build wystawia usługę mcp-server na porcie 8765 z sondą zdrowotną.

> Source: docker-compose.yml:1-13

Testy i jakość

  • Testy jednostkowe/integracyjne – Vitest z konfiguracją environment: "node", raportami pokrycia i zakresem tests/**/*.test.ts.

> Source: vitest.config.ts:1-12

  • Scenariusze testowe – testy potwierdzają zdrowie, manifest, walidację payloadów, działanie każdego narzędzia i endpointu /infographics.

> Source: tests/server.test.ts:24-235, tests/tools.test.ts:20-61

  • Linting i formatowanie – ESLint łączy rekomendacje JS/TS z konfiguracją Prettier oraz ostrzega przed nieautoryzowanym console.

> Source: eslint.config.js:1-18

  • Kontrola typówpnpm typecheck uruchamia tsc --noEmit, korzystając z ustawień ścisłej kontroli w tsconfig.json.

> Source: package.json:11, tsconfig.json:2-16

Integracje i zewnętrzne usługi

Repozytorium operuje lokalnie na systemie plików i nie wywołuje zewnętrznych API; wszystkie narzędzia korzystają z modułów fs, path i walidacji Zod.

Source: src/tools/read_file.ts:1-42, src/tools/write_file.ts:1-43, src/tools/list_files.ts:1-42, src/tools/parse_csv.ts:1-62, src/tools/generate_infographic.ts:1-140

Ograniczenia i znane problemy

  • Operacje na plikach ograniczone do katalogu projektu – próba użycia ścieżek poza process.cwd() kończy się błędem „Dostęp zabroniony”.

> Source: src/tools/read_file.ts:22-42, src/tools/write_file.ts:21-42, src/tools/list_files.ts:22-42, src/tools/parse_csv.ts:21-61

  • Generator infografik renderuje maksymalnie 100 pierwszych wierszy CSV oraz nie wykonuje agregacji danych poza listą kolumn.

> Source: src/tools/generate_infographic.ts:49-135

  • Parser CSV zakłada separator przecinka i nie obsługuje cytowanych wartości ani różnych separatorów.

> Source: src/tools/parse_csv.ts:44-55

Roadmap / TODO

Nieustalone w repo.

Załączniki

Kluczowe pliki i ich rola

ŚcieżkaRola
src/server.tsSerwer Fastify rejestrujący endpointy MCP i delegujący do narzędzi
src/tools/index.tsRejestr definicji narzędzi i manifestów
src/tools/*.tsImplementacje narzędzi operujących na danych i plikach
src/public/index.htmlStatyczna karta użytkownika z instrukcjami workflow
tests/server.test.tsTesty integracyjne pokrywające endpointy HTTP i narzędzia
tests/tools.test.tsTesty narzędzi plikowych na przykładowym CSV
manifest.jsonDeklaracja serwera MCP i schematów wejścia
DockerfileDefinicja obrazu wieloetapowego (build + runtime)
docker-compose.ymlOrkiestracja usługi kontenerowej z healthcheck
Source: src/server.ts:57-151, src/tools/index.ts:29-117, src/tools/ping.ts:3-35, src/tools/read_file.ts:5-42, src/tools/write_file.ts:5-43, src/tools/list_files.ts:5-42, src/tools/parse_csv.ts:5-62, src/tools/analyze_data.ts:5-62, src/tools/generate_infographic.ts:6-140, src/public/index.html:1-198, tests/server.test.ts:1-235, tests/tools.test.ts:1-61, manifest.json:1-125, Dockerfile:1-22, docker-compose.yml:1-13

Słownik pojęć

  • MCP (Model Context Protocol) – protokół manifestu i narzędzi używany przez serwer (name, version, tools).

> Source: manifest.json:1-125

  • Tool Result ACK – odpowiedź potwierdzająca odebranie tool_result bez dalszego przetwarzania.

> Source: src/server.ts:89-113

  • Infografika – HTML wygenerowany przez narzędzie generate_infographic, zapisany do output/.

> Source: src/tools/generate_infographic.ts:41-135

Luki informacyjne

  • Brak w repozytorium planu rozwoju (roadmapy) ani komentarzy TODO.
  • Brak udokumentowanych zależności Python/poza ekosystemem Node – potencjalne działania wymagają dodatkowych ustaleń.

目录标签

目录标签

数据分析TypeScript数据可视化HTTP服务CSV处理本地部署文件管理

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP