-
-
Notifications
You must be signed in to change notification settings - Fork 148
Add AI Mate component for MCP server integration #1146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add AI Mate component for MCP server integration #1146
Conversation
|
A special thanks goes to @Nyholm which was a great companion during the prototype phase and discussion partner on the symfony con in amsterdam where this ideas was born |
|
Johannes and I have been working on this together for the past few weeks. The idea of AI Mate is to create a framework agnostic platform where we easily can integrate with Symfony/Sulu/Laravel/Whatever specific features. |
|
Coming out of stealth mode - hitting Awesome stuff - thanks for driving that and spinning it up only in two weeks since SymfonyCon - will give it a deeper read, when you ping me 👍 |
6f175e1 to
da96bfe
Compare
|
Hey @wachterjohannes, thanks again, one rather conceptual question. In understand this PR now like mate would integrate with the dependencies of the main application, right? did you consider installing it as a phar to get rid of that dependency range? |
yes absolutly - this should be a point on the list in the next weeks - but i think for now we could go with that and collect feedback! |
a33b39d to
17ca459
Compare
744e7a1 to
93bc9da
Compare
|
@OskarStark i have rebased again - and except the open questions there should be fixed everything |
OskarStark
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments
| Symfony Bridge | ||
| ~~~~~~~~~~~~~~ | ||
|
|
||
| The Symfony bridge (``symfony/ai-symfony-mate``) provides container introspection tools |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am still thinking about the naming, symfony/ai-symfony-mate-extension would be the best fit IMHO, but we are talking about bridges here.
Proposal, lets keep the therm Bridge in the namespace and code, to ease development (I don't want to have special cases by introducing an Extension namespace), but lets use extension to communicate it in the docs and for package names. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, not sure, feels inconsistent to me - we don't have it anywhere else symfony/ai-azure-platform-extension?
should we drop the term "extension" at all in favor of "bridge"?
i feel it's more like coming from phpstan - with symfony not usually used but bridge
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, lets use the bridge wording everywhere and get rid of extension term
|
I guess "extension" vs "bridge" is some kind of higher level decision we need to take. |
|
@OskarStark @chr-hertel i also think that bridge would fit better in this repo. not sure if it makes sense for external developer. But let us try and if we can explain that well it should not be an issue in the future. @Nyholm is that ok for you? |
|
@OskarStark will go on with the extension => bridge renaming after @Nyholm give his opinion about that |
|
No worries 😉 |
7e0ef7f to
dd5bd7a
Compare
|
@OskarStark @chr-hertel @Nyholm i have already done the renaming in the latest commit - if you are all happy with it i should give it a last try in my example repo before we can finally merge it |
|
Do you think it is a good idea to add it to the demo application in this repo? |
|
I do believe an "extension" is a more generic term than "bridge". A "bridge" connects two things. An "extension" adds some kind of functionally. I agree that we should be constant and call it "bridge" in this repo. Ie, we should use the "Bridge" namespace and name our code accordingly. BUT, if I create "Tobias private Mate integration"-package, that is for sure an "extension". So in the AI Mate code, we should refer to "extension". I see that you changed to "Bridge". I dont think this should be a blocker for merging. We can open an issue and talk about it before the first tag. |
|
@Nyholm i also agree to you! as i already mentioned that the term is not so self-explaining. I have done the renaming in a completly own commit so no worries to revert that. @OskarStark i also thought about that. but i think that should be part of a follow up pull-request. |
|
Ok let's go with bridge and open an issue. Afterwards let's create a PR with extension, but we would need to tackle a lot of scripts etc. I would also like @fabpot's opinion if extension renaming would have some more side effects |
|
@OskarStark think thats a pragmatic solution! ler us merge it with bridge, merge it and i will create follow up PRs about extension term and example in the next days |
Anything happening before 1.0 has not big consequences. |
OskarStark
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to merge from my side @chr-hertel, please give a final review
|
@OskarStark i tried this in my example repo so also from my side its good to go |
|
As it is quite a new concept of a Symfony component, can you maybe share a small video in the PR header how you use it in PhpStorm or anywhere else? |
on it right now 👍 |
chr-hertel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will provide a follow up about referencing dev for composer, but we should just bring that in and level up in smaller steps
1b0b490 to
c151ab8
Compare
|
Thank you @wachterjohannes. |
|
@chr-hertel it was a pleasure! but now we have to improve it 😅 |
Description
This PR introduces the AI Mate component (
symfony/ai-mate), a standalone MCP server that enables AI assistants (Claude, GitHub Copilot, JetBrains AI, Cursor) to interact with PHP/Symfony applications through standardized tools.Key Features
Core Server
extra.ai-mateincomposer.jsonphp-version,operating-system,php-extensionsSymfony Bridge (
symfony/ai-mate-symfony)symfony-servicestool for container introspectionMonolog Bridge (
symfony/ai-mate-monolog)monolog-search,monolog-search-regex,monolog-context-search,monolog-tail,monolog-list-files,monolog-list-channels,monolog-by-levelArchitecture
Unlike other Symfony AI components, Mate is standalone and does not integrate with the AI Bundle. It runs as an independent MCP server via stdio transport.
Usage Example
Creating custom tools:
Documentation
Comprehensive documentation added to
docs/components/mate.rst: