modelcontextprotocol / modelcontextprotocol/ext-apps

Specced type of `ui/notifications/tool-input` is incompatible with OAI 'custom tools'

Open
#197 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
2.9k
Forks
387
Avg merge
3h 21m
Merged PRs (30d)
6

Description

Describe the bug

ui/notifications/tool-input is specced as

{
  jsonrpc: "2.0",
  method: "ui/notifications/tool-input",
  params: {
    arguments: Record<string, unknown>  // Tool input arguments
  }
}

Tools on OAI do not require tool arguments to be given as objects -- they can be raw strings. This can lead to better tool calling fidelity since it avoids various escaping issues that models trip up on in JSON calling, especially with nested strings.

However, arguments to such tools cannot be represented in ui/notifications/tool-input because it requires an object for its arguments.

To Reproduce
Attempt to implement apps in a system that allows

Expected behavior
We should be able to model OAI custom tools in this call. I suggest just making arguments unknown.

Logs
N/A

Additional context
N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the specification for ui/notifications/tool-input and compare its arguments shape with the linked OpenAI custom-tools documentation. Confirm how raw-string arguments should be represented, then update the specification so the call can model them and verify that the resulting shape remains valid for object arguments.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.