Skip to content

Conversation

souvikghosh04
Copy link
Contributor

@souvikghosh04 souvikghosh04 commented Sep 9, 2025

Why make this change?

  • The linked issue proposes integrating an MCP (Model Context Protocol) server so AI/agent tooling (e.g., VS Code / Copilot–style agents) can introspect the configured data model and perform safe, structured operations against DAB-managed data sources.
  • This enables richer developer tooling, lowers friction for exploratory data access, and creates a foundation for future AI-assisted authoring and governance scenarios.

What is this change?

Introduces an MCP service layer that exposes:

Schema / entity metadata derived from the existing DAB configuration (tables, stored procedures, relationships, GraphQL entity projections).
Operation capabilities (read / create / update / delete) aligned with DAB authorization rules.
A capability negotiation / handshake endpoint so MCP clients can discover features.

MCP endpoint can be accessed with /mcp

Sample request to discover tools-

POST: http://localhost:5000/mcp

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/list"
}

How was this tested?

  • Integration Tests
  • Unit Tests

Sample Request(s)

  • Example REST and/or GraphQL request to demonstrate modifications
  • Example of CLI usage to demonstrate modifications

Jerry Nixon and others added 17 commits August 27, 2025 15:06
This reverts commit 04b19f9, reversing
changes made to 3948822.
…a-api-builder into jerry-mcp-core"

This reverts commit 0b649dbbc877a8ad009ac31eb4a082664d49bce3, reversing
changes made to 2240172.
## Why make this change?

- Introduces a dedicated runtime layer for MCP

## What is this change?

- Adds a runtime initialization module that centralizes configuration
load, validation, DI registration, and service/materialization order.
- Refactors existing startup code into clearer phases; removes
duplicated wiring.
- Improves logging structure and prepares for future feature flags /
layered config overrides.
- Cleans up deprecated code paths (overall net +901 / −130 LOC).
- No intentional breaking changes (verify before merge).

## How was this tested?

- [ ] Integration Tests
- [ ] Unit Tests

## Sample Request(s)

- Discover tools: POST `http://localhost:5000/mcp`

JSON body

```
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/list",
  "params": {}
}
```

- List entities: POST `http://localhost:5000/mcp`

JSON body

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_entities"
  }
}
```

---------

Co-authored-by: Rahul Nishant <[email protected]>
Co-authored-by: RubenCerna2079 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Aniruddh Munde <[email protected]>
@souvikghosh04 souvikghosh04 changed the title Jerry mcp core Adding MCP capability in DAB Sep 9, 2025
@souvikghosh04
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command.

@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

Copy link
Contributor

@anushakolan anushakolan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have resurfaced some of the comments which were not addressed or resolved. A few of them are important. Everything else looks good to me. I can approve the PR once these comments are closed.


services.AddSingleton<DabCacheService>();

// special for MCP
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not addressed.

## Why make this change?
- Fixes service tests for mcp-core PR

## What is this change?
- It creates the JsonConverterFactory that is needed to serialize and
deserialize the MCP properties correctly.
- Fixes tests to ensure that the serialization/deserialization works as
intended.

## How was this tested?

- [ ] Integration Tests
- [X] Unit Tests
@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@souvikghosh04
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@souvikghosh04
Copy link
Contributor Author

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants