🛠️ MCP Server with C# + Firebird について
C#で構築されたFirebird向けMCPサーバーです。MCP経由でFirebirdデータベースを検索したい開発者向けで、SQL条件による絞り込みと取得件数の制限に対応します。
主な機能
- 01C#による構築
- 02Firebirdへの接続
- 03テーブルレコードの絞り込み
- 04レコード件数の上限設定
- 05appsettings.jsonによる設定
活用シーン
- 01Firebirdのテーブルデータ検索
- 02条件に合うレコードの抽出
- 03検索結果の件数制限
MCP 対応
ListTableツールを通じてFirebirdのテーブル検索をMCPクライアントに公開します。テーブル名、SQLフィルター、取得件数を指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🛠️ C# + Firebird の MCP サーバー
このプロジェクトは、カスタムツールに対応した、C# で作成された MCP(Model Context Protocol)サーバーです。機能の 1 つとして、Firebird データベースでフィルターとレコード数の上限を指定した動的クエリを実行できます。
📦 使用技術
- NPX
- C# (.NET 9)
- MCP(Model Context Protocol)
- FirebirdSql.Data.FirebirdClient
Host.CreateApplicationBuilderによる依存性注入appsettings.jsonによる設定
⚙️ 設定
NuGet で依存関係をインストールします。
dotnet add package ModelContextProtocol --prerelease
🔧 appsettings.json ファイル
プロジェクトのルートに appsettings.json ファイルを作成し、次の内容を記述します。
{
"ConnectionStrings": {
"FirebirdDb": "Database=C:\\yourdata.fdb;User=SYSDBA;Password=masterkey;Dialect=3;Charset=NONE;" }
}
📝 データベースの場所に合わせて、.FDB ファイルのパスを変更してください。
📂 推奨されるプロジェクト構成
src/
├── MCPServer/
│ ├── Factory/
│ │ └── FbConnectionFactory.cs
│ ├── Tools/
│ │ └── FbQueries.cs
│ ├── Program.cs
│ └── appsettings.json
🧩 利用可能な MCP ツール
🔍 ListTable
[McpTool, Description("List all records from a Firebird table")]
public List<Dictionary<string, object>> ListTable(string tableName, string filter = "", int limitRecords = 0)
このツールは、次の機能を使って Firebird データベースのテーブルからレコードを返します。
🔎 SQL による条件フィルター
🔢 レコード数の制限(FIRST を使用)
使用例:
{
"tool": "ListTable",
"args": {
"tableName": "CUSTOMERS",
"filter": "STATUS = 'ACTIVE'",
"limitRecords": 10
}
}
MCP サーバーの実行
npx @modelcontextprotocol/inspector dotnet run
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。