Skip to content

BoscoBecker/MCPServerCSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ› οΈ MCP Server with C# + Firebird

This project is an MCP ( Model Context Protocol ) server created in C#, with support for custom tools. One of the features included is the execution of dynamic queries in a Firebird database with filter and record limit.


πŸ“¦ Technologies Used

  • NPX
  • C# (.NET 9)
  • MCP ( Model Context Protocol )
  • FirebirdSql.Data.FirebirdClient
  • Dependency Injection via Host.CreateApplicationBuilder
  • Configuration via appsettings.json

βš™οΈ Configuration

Install dependencies by nuget

dotnet add package ModelContextProtocol --prerelease

πŸ”§ appsettings.json File

Create an appsettings.json file in the project root with the following content:

{
"ConnectionStrings": {
"FirebirdDb": "Database=C:\\yourdata.fdb;User=SYSDBA;Password=masterkey;Dialect=3;Charset=NONE;" }
}

πŸ“ Change the path of the .FDB file according to the location of your database.

πŸ“‚ Recommended Project Structure

src/
β”œβ”€β”€ MCPServer/
β”‚ β”œβ”€β”€ Factory/
β”‚ β”‚ └── FbConnectionFactory.cs
β”‚ β”œβ”€β”€ Tools/
β”‚ β”‚ └── FbQueries.cs
β”‚ β”œβ”€β”€ Program.cs
β”‚ └── appsettings.json

🧩 MCP Tool Available

πŸ” ListTable

[McpTool, Description("List all records from a Firebird table")]
public List<Dictionary<string, object>> ListTable(string tableName, string filter = "", int limitRecords = 0)

This tool returns records from a Firebird database table with:

πŸ”Ž Conditional filter via SQL

πŸ”’ Limitation of number of records (using FIRST)

{DF1F6239-E983-45A0-87E3-645291A6D2C7}

Example of use:

{
  "tool": "ListTable",
  "args": {
    "tableName": "CUSTOMERS",
    "filter": "STATUS = 'ACTIVE'",
    "limitRecords": 10
  }
}

Run MCP server

  npx @modelcontextprotocol/inspector dotnet run

{58D6C0FD-B032-48FC-9F16-8769A9403E82}

About

MCP Server com C# + Firebird

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages