knative / knative/func

MCP: add describe tool for Function inspection

Open
#3,729 1 comment 0 reactions 1 assignee Claimed by @sneharathod7 View on GitHub
Dominant language
Go
Stars
365
Forks
223
Avg merge
2d 3h
Merged PRs (30d)
25

Description

## Summary

The MCP server currently does not expose a `describe` tool, even though `func describe` already exists as a CLI command. After deploying a Function through the MCP workflow, agents do not have a direct MCP-native way to inspect the deployed Function state.

Related to #3646 (LFX: End-to-End Agentic Workflow).

## Current Behavior

After deployment, the available MCP workflow is somewhat limited for inspection:

- `list` provides only high-level Function information
- `func://function` exposes local `func.yaml` state rather than live deployment details

This makes it difficult for agents to retrieve deployment-specific information such as:
- route URL
- deployed image
- revision status
- readiness conditions

## Expected Behavior

A `describe` MCP tool should allow agents to inspect deployed Function details such as:
- Function name and namespace
- Runtime and image reference
- Route URL
- Current revision and readiness state
- Additional deployment metadata and conditions

## Why This Matters

The current MCP flow supports create → build → deploy, but there is limited support for deployment inspection afterward.

Adding a `describe` tool would improve the end-to-end workflow by allowing agents to verify and reason about deployed Function state directly through MCP instead of relying on external commands.

## Possible Implementation Direction

A new `pkg/mcp/tools_describe.go` tool could wrap the existing `func describe` command following the same handler and registration patterns already used by the other MCP tools.

The implementation could support:
- name-based lookup
- path-based lookup
- namespace selection
- optional output formatting

Tool registration and tests could follow the existing MCP tool patterns already present in `pkg/mcp`.

## Notes

- `func describe` already exists as a CLI command in `cmd/describe.go`
- `describe` is a read-only operation and should not require write-enabled MCP mode

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.