Skip to content

Expose MCP connection health and stabilize tool lifecycle #8

Description

@celeroncoder

Problem

Every Alluka chat turn loads all enabled MCP connections and discovers their tools before model execution. Unavailable connections are silently ignored, so users cannot distinguish "this tool is unavailable" from "the agent did not choose to use it." Connection and discovery work is repeated even when the connection configuration has not changed.

The system prompt describes built-in extension availability, but connected MCP tool availability is not represented with the same explicitness. This can lead to agents receiving stale or incomplete assumptions about the tools they can use.

Performance and reliability improvement

Expose durable MCP connection health and a stable tool lifecycle.

Each configured connection has a visible readiness state, last known tool catalog state, and a clear degraded/unavailable reason that does not expose credentials. Agent runs receive only tools that are actually ready for that run, and user-facing status accurately reflects the resulting capability set.

Expected behavior

  • Connection setup, authentication, discovery, ready, degraded, and unavailable states are observable in the Plugins UI.
  • A transient unavailable connection does not prevent unrelated agent work.
  • Tool availability for a run is auditable and does not claim that an unavailable connection can be used.
  • Repeated runs do not perform unnecessary connection/discovery work when the tool catalog and configuration remain valid.
  • Changes to a connection, credential, OAuth state, enabled state, or discovered tool set are reflected before affected runs.
  • Tool names and invocation guidance are derived from the actual available catalog rather than stale prompt text.
  • Errors and telemetry never disclose bearer tokens, OAuth tokens, or secret headers.

Why this matters

MCP connections are central to Alluka's extensibility. Their reliability and startup cost should scale with actual changes and health, not with every user message.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions