Token导航 LogoToken导航TokenDH.com
MCPserver Azure AI logo
AI代理未说明官方级别未说明来源级核验

MCPserver Azure AI

MCP Server

基于Azure OpenAI的MCP协议C# SDK实现,提供服务器与客户端交互功能,支持多种工具调用如时间查询、URL检查、天气查询和数据库操作。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
数据库操作AI代理C#

安装说明

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

作者 / 组织

KNG60

提供方

KNG60

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

MCP C# SDK: serwer + klient (Azure OpenAI)

To repo zawiera:

  • serwer Model Context Protocol (MCP) zbudowany na oficjalnym ModelContextProtocol C# SDK (projekt McpServer),
  • klienta w C#, który łączy się z serwerem przez stdio używając tego samego SDK i udostępnia narzędzia LLM‑owi (Azure OpenAI) w trybie tools/function calling (projekt McpClient).

Wymagania

  • .NET 8.0 SDK lub nowszy

Budowa projektu

dotnet build

Tryb czatu (interaktywny, jedna sesja MCP na wiele pytań):

dotnet run --project McpClient/McpClient.csproj -- --chat
# alias: -i

W trybie czatu dostępne są komendy:

  • /reset — czyści historię rozmowy (pozostawia tylko wiadomość systemową),
  • /exit lub /quit — kończy działanie klienta.

Wysyłanie promptu (nie interaktywny)

Prompt — sprawdź URL

dotnet run --project McpClient/McpClient.csproj -- "Sprawdź, czy wp.pl jest dostępne."

Przykładowy wynik:

Strona wp.pl jest dostępna (status 200 OK, czas odpowiedzi 210 ms).

Prompt — podaj czas

dotnet run --project McpClient/McpClient.csproj -- "podaj czas"

Przykładowy wynik:

Aktualny czas serwera to 19:19:36.

Prompt — pogoda (online, Open‑Meteo)

dotnet run --project McpClient/McpClient.csproj -- "Podaj pogodę dla Warszawy w stopniach Celsjusza."

Przykładowy wynik:

Aktualna temperatura w Warszawie wynosi 7,2°C.

Prompt — zasoby

dotnet run --project McpClient/McpClient.csproj -- "Wypisz listę utworów 'Led Zeppelin'."

Przykładowy wynik:

Oto lista utworów zespołu Led Zeppelin:

1. **BBC Sessions [Disc 1] [Live]**
   - Communication Breakdown
   - Communication Breakdown(2)
   - Communication Breakdown(3)
   - Dazed and Confused
   - How Many More Times
   - I Can't Quit You Baby
   - I Can't Quit You Baby(2)
   ...
dotnet run --project McpClient/McpClient.csproj -- "Znajdz wykonawcę utworu 'Black Dog'."

Przykładowy wynik:

Oto lista utworów zespołu Led Zeppelin:

1. **BBC Sessions [Disc 1] [Live]**
   - Communication Breakdown
   - Communication Breakdown(2)
   - Communication Breakdown(3)
   - Dazed and Confused
   - How Many More Times
   - I Can't Quit You Baby
   - I Can't Quit You Baby(2)
   ...

Funkcjonalności

Serwer implementuje następujące narzędzia (tools):

  1. get_time - Zwraca bieżący czas serwera

- Parametry: brak - Przykład: {}

  1. check_url - Sprawdza dostępność strony/URL

- Parametry: url (string, wymagane), method (string: HEAD/GET, opcjonalnie), timeoutMs (integer 100–10000, opcjonalnie) - Przykład: {"url":"https://example.com","method":"HEAD","timeoutMs":3000}

  1. check_weather - Informacja o pogodzie dla miasta

- Działa online (Open‑Meteo: geocoding + current temperature), z fallbackiem offline gdy API jest niedostępne. - Parametry: city (string), units (string, opcjonalnie: metric/imperial) - Przykład: {"city": "Warszawa", "units": "metric"}

  1. db_query — Zapytanie tylko do odczytu (SELECT) do bazy SQLite

- Parametry: - sql (string, wymagane) — zapytanie SELECT lub WITH … SELECT (z parametrami @name), - parameters (object, opcjonalne) — mapa nazwa: wartość dla parametrów (bez @), - limit (int, opcjonalne) — maksymalna liczba zwracanych wierszy (domyślnie 100, max 1000). - Zwraca: JSON z polami rows (tablica wierszy), rowCount, path. - Zmienna środowiskowa: DB_SQLITE_PATH — ścieżka do pliku bazy (domyślnie data.sqlite w katalogu uruchomienia).

  1. db_execute — Wykonanie poleceń nie-SELECT (INSERT/UPDATE/DELETE/DDL) w SQLite
  2. db_schema — Zwraca schemat bazy (tabele i kolumny) jako JSON

- Parametry: brak - Zwraca: path, tables (lista tabel z kolumnami)

  1. db_find_track_artist — Wyszukiwanie utworów po fragmencie tytułu (Chinook)

- Parametry: title (string, wymagane), limit (int, opcjonalne, domyślnie 10) - Zwraca: rows z polami: TrackId, Track, Album, Artist

  1. db_list_tracks_by_artist — Lista utworów dla wykonawcy (Chinook)

- Parametry: artist (string, wymagane), limit (int, opcjonalne, domyślnie 200) - Zwraca: rows z polami: Artist, Album, Track - Parametry: - sql (string, wymagane) — polecenie bez SELECT (z parametrami @name), - parameters (object, opcjonalne) — mapa nazwa: wartość dla parametrów (bez @). - Zwraca: tekst z informacją o affectedRows i ścieżce bazy.

Jak to działa (skrót)

  • Serwer MCP (McpServer) jest hostowany przez Microsoft.Extensions.Hosting i uruchamiany w trybie stdio przez MCP SDK (AddMcpServer().WithStdioServerTransport()).
  • Narzędzia (tools) są rejestrowane przez atrybuty [McpServerToolType] i [McpServerTool] na metodach w kodzie.
  • Klient MCP (McpClient) uruchamia serwer jako proces potomny przez StdioClientTransport i łączy się z nim protokołem MCP.
  • Lista narzędzi jest mapowana na specyfikację „tools” dla Chat Completions, a LLM może je wywoływać w pętli do uzyskania odpowiedzi.

Struktura projektu

  • McpServer/Program.cs - Serwer MCP oparty o oficjalny C# SDK (Host + atrybuty narzędzi)
  • McpServer/McpServer.csproj - Plik projektu .NET serwera MCP
  • McpClient/Program.cs - Klient LLM (Azure OpenAI) integrujący narzędzia MCP
  • McpClient/McpClient.csproj - Plik projektu .NET klienta
  • README.md - Dokumentacja

Implementacja

Komunikacja JSON‑RPC oraz negocjacja MCP są w pełni obsługiwane przez ModelContextProtocol C# SDK (NuGet: ModelContextProtocol). Logi serwera są kierowane na stderr, aby stdout pozostał czysty dla protokołu.

Klient MCP (C# + Azure OpenAI)

Klient McpClient uruchamia lokalnie serwer MCP (projekt McpServer) przez dotnet run, pobiera listę narzędzi MCP, mapuje je na funkcje dla Chat Completions (tools/function calling), a następnie pozwala LLM automatycznie wzywać narzędzia. Wyniki z narzędzi zwracane są z powrotem do modelu, aż do uzyskania finalnej odpowiedzi.

Konfiguracja środowiska

export AZURE_OPENAI_API_KEY=""
export AZURE_OPENAI_ENDPOINT="https://.openai.azure.com"
export AZURE_OPENAI_CHAT_DEPLOYMENT=""
# Opcjonalnie: ścieżka do bazy SQLite dla serwera MCP
export DB_SQLITE_PATH="/pełna/ścieżka/do/data.sqlite"

目录标签

目录标签

数据库操作AI代理C#MCP协议本地部署C#SDKAzureOpenAI工具调用

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP