posit-dev / posit-dev/mcptools
Expose source server and annotations for client tools
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 196
- Forks
- 21
- Avg merge
- 1h 14m
- Merged PRs (30d)
- 1
Description
I’m using mcp_tools() with Deputy and would like to inspect the source server and MCP annotations alongside each returned ellmer tool.
Deputy checks tools before running them. For an MCP tool, I’d like to show which configured server supplied it and use hints such as readOnlyHint and destructiveHint as inputs to that check. The host still decides what to allow; discovery and server-provided hints don’t grant permission.
In mcptools 1.0.2, the connection has the descriptors, but the ellmer conversion drops the annotations and server identity. I currently have a small version-checked adapter that reads those existing descriptors without opening another connection.
The connection association matters too. If a server is reconnected under the same name, I need to avoid checking an old tool’s annotations and then invoking its replacement. Deputy currently rejects that stale handle and asks the host to reload the tools.
Would exposing this information fit the client interface work in #109? I’d like to reuse mcptools’ discovery, conversion and connections, and remove the adapter once a public interface is available.
I’m tracking the Deputy integration in JamesHWade/deputy#99.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with mcp_tools(), the connection descriptors, and the ellmer conversion described in the issue, then review the client interface work in #109. The public interface should preserve source-server identity and MCP annotations, associate them with the current connection, and support rejecting stale tools after reconnection without opening another connection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- api, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100