mcpField
M
mcp-server-demo

mcp-server-demo

ローカル
github.com/dto-btn開発ツール06 週間前に更新

mcp-server-demo について

mcp-server-demo は、業務リクエストデータを扱う MCP の概念実証サーバーで、Azure OpenAI を使うよう設定するクライアントも含みます。SQL Server に接続し、リクエスト記録の検索と絞り込みを行うツールを提供します。

主な機能

  1. 01SQL Server データベースへの接続
  2. 02業務リクエストの検索
  3. 03検索結果の絞り込み
  4. 04ローカルまたは Docker での実行

活用シーン

  1. 01フィールド条件を指定してリクエストを検索
  2. 02列の値で検索結果を絞り込む
  3. 03MCP サーバーとクライアントの概念実証をテスト

MCP 対応

業務リクエストの検索と結果の絞り込みを行う MCP サーバーで、ホスト、ポート、サーバー URL を設定できます。README には Azure OpenAI を利用するクライアントも記載されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Business Request Server

ほかの PoC で使用するデモ用 PoC MCP サーバー

開発者

設定

サーバーまたはクライアントを実行する前に、サンプルから .env ファイルを作成します。

cp .env.example .env

.env を編集し、データベースの認証情報と Azure OpenAI の設定を入力します。

変数説明必須デフォルト
BITS_DB_SERVERSQL Server データベースのホスト名または IP アドレスです。はいmissing.domain
BITS_DB_USERNAMEデータベース認証に使用するユーザー名です。はいmissing.username
BITS_DB_PWDデータベース認証に使用するパスワードです。はいmissing.password
BITS_DB_DATABASE接続する特定のデータベースの名前です。はいmissing.dbname
HOSTMCP サーバーがバインドするホストアドレスです。いいえ0.0.0.0
PORTMCP サーバーがリッスンするポートです。いいえ8000
MCP_SERVER_URLMCP サーバーにアクセスできる URL です(クライアントで使用)。いいえhttp://127.0.0.1:8000/mcp
CORS_ALLOW_ORIGINSMCP サーバーへの接続を許可するオリジンをコンマ区切りで指定します。いいえhttp://localhost,http://127.0.0.1
CORS_ALLOW_CREDENTIALSCORS リクエストで認証情報(Cookie、認証ヘッダー)を許可するかどうかを指定します。いいえfalse
AZURE_OPENAI_ENDPOINTAzure OpenAI リソースのエンドポイント URI です(クライアントで使用)。はい(クライアント)-
AZURE_OPENAI_VERSIONAzure OpenAI の API バージョンです。いいえ2024-05-01-preview
CLIENT_ID認証用の OAuth2 クライアント ID です(実験的機能)。いいえ-
CLIENT_SECRET認証用の OAuth2 クライアントシークレットです(実験的機能)。いいえ-
REDIRECT_URI認証用の OAuth2 リダイレクト URI です(実験的機能)。いいえ-
インストール
uv venv
uv pip install -e .
# then run it locally
mcp dev server.py
# or alternatively
python server.py

表示された URL にアクセスして、サーバーをテストします。

次に、Templates や search_business_requests などの関数をテストできます。

query に次の値を渡します。

{
  "query_filters": [
    {
      "name": "BR_SHORT_TITLE",
      "value": "Server",
      "operator": "="
    }
  ]
}

select_fields には次の値を渡します。

{
  "fields": [
    "BR_SHORT_TITLE"
  ]
}

その後、filter_results を使って結果をフィルタリングできます。

[
  {
    "column": "RPT_GC_ORG_NAME_EN",
    "operator": "contains",
    "value": "Correctional"
  }
]

Docker で実行する

docker build -t mcp-bits:local .
docker run -p 8080:8080 --env-file ./.env --name mcp-bits-container mcp-bits:local

pymssql の問題

Mac OSX での pymssql

pymssql は FreeTDS に依存しているため、事前に brew install freetds を実行してインストールしてください。

その後、コードの実行で問題が発生した場合は、次の手順を実行してください。

uv pip uninstall pymssql
uv pip install --pre --no-binary :all: pymssql --no-cache --no-build-isolation

また、uv の pyproject.toml に追加することもできます。

[tool.uv]
no-binary-package = ["pymssql"]

これで、すべて動作するはずです。

注:既知の問題として cython==3.1.0 に関するものがあります。こちら を参照してください。

現時点での回避方法は次のとおりです(この問題が修正されたら、これを削除してください)。

uv pip uninstall pymssql
export CFLAGS="-I$(brew --prefix freetds)/include"
export LDFLAGS="-L$(brew --prefix freetds)/lib"
uv pip install "packaging>=24" "setuptools>=54.0" "setuptools_scm[toml]>=8.0" "wheel>=0.36.2" "Cython==3.0.10" "tomli"
uv pip install --pre --no-binary :all: pymssql --no-cache --no-build-isolation

デプロイ

CI/CD

TODO

手動

CLI を使って Azure に手動でデプロイする方法は次のとおりです。

az webapp deployment source config-local-git \
  --name <WebAppName> \
  --resource-group <ResourceGroupName>
git remote add azure <GitURLFromPreviousStep>
git push azure main

ドキュメント

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。