-
Notifications
You must be signed in to change notification settings - Fork 400
Include tool annotations #176
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
Conversation
|
And I just noticed it is not working as expected. I've added a new MCP server, which contains tool annotations, but I don't see those in the UI. I'll check later, you can discuss if the feature makes sense in the meantime. |
|
This looks awesome, will review & test in detail - there's a merge conflict atm with admin.html, but I love where this is going! The icons are great too. Will see if I can find some servers with annotations as well to test with - let me know if you have some suggestions. We also need to coordinate this with #151 which is a massive PR that affects a lot of the same components - which allows us to namespace MCP servers (ex: in case they have tools with overlapping names) - we'll sort that out on merge! |
|
@crivetimihai Cool! |
|
Rebased and fixed the issue - missed storing the annotations in db before... |
|
Hello, I did some initial tests with Will do more testing tomorrow as we figure out how to merge this along #151 - and what to do about Alembic DB migrations. Drafted but NOT tested: #184 for Alembic setup. Let me know if you plan to do more pushes on this - we'll get this merged once fully tested, and align with the other PRs for Alembic migrations, and include in the upcoming Note: As we start to get closer to a 'stable release' and lift the 'Development Status :: 4 - Beta' tag - we'll include changelog notes and documentation on Alembic schema migrations, etc. for breaking changes. We may also consider releasing the configuration Export feature prior (perhaps 0.2.1 - 2025-07-01) to give folks a way to export configs before breaking DB changes - drafted #185. PR Test MatrixAutomated Checks❗ DCO — one commit missing CLI / Make❌ curl -sk https://localhost:4444/health
curl -sk https://localhost:4444/ready
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 0 --secret my-test-key)
curl -sk -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" https://localhost:4444/version✅ Admin UI & API✅ Visit:
✅ Add time MCP Server to Registry : ✅ Tools: curl -sk -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" https://localhost:4444/version
curl -sk -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" https://localhost:4444/toolsDocker Compose (test with Postgres and Redis)❗ Change to Note: this breaks due to missing DB alembic migrations so need to kill DB and restart: Now it works. 🧪 Skipped (for now)
✅ Helm Chart✅ Other Checks
🧪 Skipped (for now)
|
Signed-off-by: onmete <ondrejmetelka@outlook.com>
|
Signed-off. No further (feature) pushes here. |
|
Alembic migrations & review in progress - so far merging with main code looks promising: Smoktest againAfter merging with main:gh pr checkout 176
git pull
git fetch origin
git merge origin/main |
|
Wow, that was fast. Thanks! |
Include tool annotations Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Include tool annotations
Include tool annotations Signed-off-by: Vicky Kuo <vicky.kuo@ibm.com>


Problem
The MCP gateway was dropping tool annotation metadata (hints like readOnlyHint, destructiveHint, idempotentHint, etc.) when proxying tools from MCP servers to clients. This resulted in clients receiving None values for all annotation fields, losing important semantic information about tool behavior.
Context
I understand that it's best to open an issue to discuss proposed changes beforehand. However, this PR is more of a byproduct of my experimentation with mcp-context-forge as a potential MCP gateway solution for Red Hat OpenShift Lightspeed.
I'm perfectly okay if you choose to close this PR—I still found the time spent exploring this approach valuable.
Preview of changes

Changes Made
Backend Infrastructure
Admin UI Enhancements
📖 Green: readOnlyHint: true
🔄 Purple: idempotentHint: true
🌐 Yellow: openWorldHint: true
Testing
Impact