Skip to content

Conversation

jeff-nasseri
Copy link

@jeff-nasseri jeff-nasseri commented May 29, 2025

Description

This pull request implements a comprehensive GitHub agent sample using C# and .NET 8, integrating Microsoft Semantic Kernel, Model Context Protocol (MCP), and Google's Agent-to-Agent (A2A) protocol. The solution enables intelligent GitHub repository analysis through natural language queries via both A2A protocol and direct API communication.

Key Implementation

Server Architecture:

  • Complete A2A server with proper ASP.NET structure
  • GitHubA2AAgent service integrating Semantic Kernel with MCP for GitHub repository access
  • Health monitoring and status endpoints

Core Integration:

  • MCP GitHub server integration for repository tool access
  • Semantic Kernel configuration with OpenAI for intelligent responses
  • Proper service registration and dependency injection patterns

Related Issues

#26

4df70d207bfa4ae2902cbab440a7d254.mp4
Copy link

google-cla bot commented May 29, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@jeff-nasseri jeff-nasseri force-pushed the feature/dotnet-sample-with-semantic-kernel-and-mcp branch from 3fa4f2c to faa872b Compare May 29, 2025 22:00
@jeff-nasseri
Copy link
Author

jeff-nasseri commented May 29, 2025

Hey @holtskinner, following your comment, I moved the dotnet sample to this repository.

I also noticed there is a repository named a2a-python which holds the actual implementation SDK of Google A2A in Python language. Since my pull request contains both the Google A2A dotnet SDK and server sample, and since this is becoming a large pull request, may I kindly ask you to see if there is any possibility to create a repository named a2a-dotnet in the google-a2a organization?

This way I can move the actual implementation of the Google A2A dotnet SDK there and keep only the sample here, and then also provide proper continuous integration and GitHub Actions at that repository for proper deployment of NuGet packages.

If that is not possible, I can also move the SDK to my personal repository, but personally I would rather do it in the google-a2a organization.

Please let me know if I need to do anything in advance to help you with the creation of google-a2a/a2a-dotnet.

CC: @koverholt | @Kamyab7 | @moonbox3 | @markwallace-microsoft

@darrelmiller
Copy link

Hey @jeff-nasseri Thanks for doing this work. Was there a reason for including the source in the sample and not using the published nuget package? I have a PR that is almost complete to support 0.2.1 of the protocol and it would make it easier for you to update if you just had the package reference.

@jeff-nasseri
Copy link
Author

jeff-nasseri commented Jun 4, 2025

Hey @jeff-nasseri Thanks for doing this work. Was there a reason for including the source in the sample and not using the published nuget package? I have a PR that is almost complete to support 0.2.1 of the protocol and it would make it easier for you to update if you just had the package reference.

Thank you for your response @darrelmiller . I wasn't aware of any existing C# implementation of google-a2a as a third-party SDK. You mentioned a pull request- could you please provide a link or reference to where I can find it?
Is this a .NET implementation of the a2a protocol? If so, I'd be interested in using it for my sample project. Otherwise, if it would be helpful, I could extract the .NET implementation source code from my PR and create a separate repository for it.

@jeff-nasseri jeff-nasseri changed the title Feature/dotnet sample with semantic kernel and mcp Jun 4, 2025
@didier-durand
Copy link
Contributor

@jeff-nasseri : Hi, I don't see my comment that you refer to about dotnet. Can you provide the link of my comment?

@jeff-nasseri
Copy link
Author

@jeff-nasseri : Hi, I don't see my comment that you refer to about dotnet. Can you provide the link of my comment?

Sorry my bad!, I was trying to mention @darrelmiller for his comment.

@didier-durand
Copy link
Contributor

@jeff-nasseri : no problem!

@holtskinner
Copy link
Member

This is the official A2A C#/.NET SDK. Could you convert this PR to use the SDK?

https://github.com/a2aproject/a2a-dotnet

@jeff-nasseri
Copy link
Author

Thanks @holtskinner for the follow up. My hope is I can revise the pull request again and use the official SDK and create a sample here by the end of this coming weekend at the latest. Although I think the existing pull request and the official A2A SDK share the same structure, especially in metadata models, which makes it easier to finalize this pull request.

I would be stay in touch with community here

…ions

Implement a new GitHub agent service using Semantic Kernel and Model Context Protocol (MCP) for interacting with GitHub repositories. This includes kernel configuration, agent setup, and MCP client integration.
@jeff-nasseri jeff-nasseri force-pushed the feature/dotnet-sample-with-semantic-kernel-and-mcp branch from faa872b to 38050e3 Compare August 17, 2025 15:53
@jeff-nasseri jeff-nasseri marked this pull request as ready for review August 17, 2025 16:04
@jeff-nasseri
Copy link
Author

Hey @holtskinner, the pull request is ready to review, please let me know if you need anything else from my side

Add new .NET CLI client application for communicating with agents using the A2A protocol with the following features:

- A2A protocol integration with streaming support
- Command line interface with multiple modes (A2A, API, interactive)
- Push notification support for real-time updates
- Session management and history tracking
- SSL certificate validation configuration
- Structured command handling with System.CommandLine
- Logging with Microsoft.Extensions.Logging
- Network utilities for URL normalization and HTTP client management

The client supports commands for:
- Running A2A protocol conversations
- Making direct API queries
- Getting agent status
- Listing available tools
- Interactive sessions with mode switching
add server project with A2A integration, controllers, and services for github agent functionality
@jeff-nasseri jeff-nasseri force-pushed the feature/dotnet-sample-with-semantic-kernel-and-mcp branch from 38050e3 to 11a862f Compare August 17, 2025 16:10
The commit adds initial .NET sample project structure integrating A2A protocol with:
- Basic solution setup with Server, GitHub Agent, and CLI projects
- Solution-wide .gitignore for .NET specific files
- IDE settings for consistent development
- Project documentation with setup instructions and architecture details
- Add .editorconfig for clean coding structure
@jeff-nasseri jeff-nasseri force-pushed the feature/dotnet-sample-with-semantic-kernel-and-mcp branch 3 times, most recently from f63d874 to 81af3c6 Compare August 17, 2025 16:37
@jeff-nasseri jeff-nasseri force-pushed the feature/dotnet-sample-with-semantic-kernel-and-mcp branch from 81af3c6 to b9214dd Compare August 17, 2025 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants