Skip to content

[BUG][API]: gRPC service registration unusable - multiple failures #2854

@gabe-l-hart

Description

@gabe-l-hart

🐞 Bug Summary

We've discovered a number of bugs related to the gRPC service registration functionality while trying to test/evaluate it.

  • When attempting to register through the admin UI, you get immediately redirected to http://localhost:4444/grpc which yields a 404
  • When registering through the admin API, a 500 is raised due to an invalid method call on MetadataCapture
curl -X 'POST'   'http://localhost:4444/admin/grpc'   -H 'accept: application/json'   -H 'Content-Type: application/json'   -d '{
  "name": "caikit.runtime.SampleLib.SampleLibService",
  "target": "localhost:8989",
  "description": "string",
  "reflection_enabled": true,
  "tls_enabled": false,
  "visibility": "public"
}'
  • When using the API to list existing grpc services (http://localhost:4444/admin/grpc), a 500 is raised because of a response format validation (expecting a dict, receive a list)
 ^^^^^^^^^^^^^^^^\n  File \"/Users/ghart/Projects/github/IBM/mcp-context-forge/.venv/lib/python3.12/site-packages/fastapi/routing.py\", line 448, in app\n    content = await serialize_response(\n              ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/Users/ghart/Projects/github/IBM/mcp-context-forge/.venv/lib/python3.12/site-packages/fastapi/routing.py\", line 286, in serialize_response\n    raise ResponseValidationError(\nfastapi.exceptions.ResponseValidationError: 1 validation error:\n  {'type': 'model_attributes_type', 'loc': ('response',), 'msg': 'Input should be a valid dictionary or object to extract fields from', 'input': []}\n\n  File \"/Users/ghart/Projects/github/IBM/mcp-context-forge/mcpgateway/middleware/rbac.py\", line 12986, in admin_list_grpc_services\n    GET /admin/grpc", "@timestamp": "2026-02-11T20:11:31.714034Z", "hostname": "Mac", "process_id": 69855}
  • With a small tweak to get service registration to work (fix PR inbound), the service registers correctly, but in the UI, the View Methods button states No methods discoverd for this service. Try re-reflecting the service. despite showing Services: 7 | Methods: 11 in the panel.
    • Also, none of the methods show up as Tools

🧩 Affected Component

Select the area of the project impacted:

  • mcpgateway - API
  • mcpgateway - UI (admin panel)
  • mcpgateway.wrapper - stdio wrapper
  • Federation or Transports
  • CLI, Makefiles, or shell scripts
  • Container setup (Docker/Podman/Compose)
  • Other (explain below)

🤔 Expected Behavior

These should all work like standard CRUD operations! Also, it's not clear why this API lives only in /admin rather than as a top-level API resource.

🧠 Environment Info

fe4e0134

Metadata

Metadata

Assignees

No one assigned

    Labels

    SHOULDP2: Important but not vital; high-value items that are not crucial for the immediate releaseapiREST API Related itembugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions