Skip to content

Conversation

@ndoschek
Copy link
Member

What it does

  • Update @modelcontextprotocol/sdk from v1.15.1 to v1.25.1
  • Migrate zod from v3.23.8 to v4.2.1 to avoid type conflicts
  • Update MCP tool registration API from server.tool() to server.registerTool()
  • Replace zod-to-json-schema with native zod toJSONSchema() method
  • Remove zod-to-json-schema dependency from ai-terminal package

Fixes GH-16615

How to test

  • verify the mentioned filesystem mcp server works also with the latest version:
"ai-features.mcp.mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem@latest",
        "/some/path"
      ],
      "autostart": false
    }
}
  • verify the theia mcp server works and that it still provides the test-tool. start the browser backend and test in a mcp client e.g. in VS Code:
{
	"servers": {
		"theia-mcp-server": {
			"url": "http://localhost:3000/mcp",
			"type": "http"
		}
	},
	"inputs": []
}

Follow-ups

Breaking changes

  • This PR introduces breaking changes and requires careful review. If yes, the breaking changes section in the changelog has been updated.

Attribution

Review checklist

Reminder for reviewers

@fipro78
Copy link
Contributor

fipro78 commented Jan 2, 2026

@ndoschek
I tested it locally and I can use the filesystem server. So it looks good to me. Now I can proceed with the implementation of the roots support.

@sdirix
Copy link
Member

sdirix commented Jan 8, 2026

I will review at the latest next week.

Copy link
Member

@sdirix sdirix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested the scenarios outlined in the PR.

The MCP server within Theia worked and the MCP server of Theia did work in VS Code. However in Roo Code the MCP integration breaks with this PR. Is there something we can do to be backwards compatible? Sadly they don't log any error so maybe we can't do too much.


Besides that I added a minor comment regarding imports and a larger one regarding the package-lock. We have duplicated zod libraries including an old version in it.

import { McpServer, RegisteredTool, RegisteredPrompt, RegisteredResource } from '@modelcontextprotocol/sdk/server/mcp.js';
import type { ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
import { MCPToolFrontendDelegate } from '../common/mcp-tool-delegate';
import z from 'zod';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All other imports look like this:

import { z } from 'zod';

"version": "1.3.24",
"resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-1.3.24.tgz",
"integrity": "sha512-GYXnGJTHRTZc4gJMSmFRgEQudjqd4PUN0ZjQhPwOAYH1yOAvQoG/Ikqs+HyISRbLPCrhbZnPKCNHuRU4OfpW0Q==",
"node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils": {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a duplicated dependency. @ai-sdk/provider-utils is now included multiple times in the same version, see for example node_modules/@ai-sdk/openai/node_modules/@ai-sdk/provider-utils

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch 👍
This looks like both @ai-sdk/openai and @ai-sdk/anthropic depend on @ai-sdk/provider-utils, and npm installs it under each package even though the versions match.

Since @ai-sdk/openai and @ai-sdk/anthropic are pulled in via the ai-vercel-ai package, I'd prefer not to touch or restructure those dependencies in this PR. I'll take another look at this on the next npm upgrade to see if we can upgrade those and remove the duplication.

Comment on lines 32827 to 32828
"packages/ai-ide/node_modules/zod": {
"version": "3.25.76",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still consume an old version here in ai-ide

@github-project-automation github-project-automation bot moved this from Waiting on reviewers to Waiting on author in PR Backlog Jan 16, 2026
- Update @modelcontextprotocol/sdk from v1.15.1 to v1.25.1
- Migrate zod from v3.23.8 to v4.2.1 to avoid type conflicts
- Update MCP tool registration API from server.tool() to server.registerTool()
- Replace zod-to-json-schema with native zod toJSONSchema() method
- Remove zod-to-json-schema dependency from ai-terminal package

Fixes GH-16615
@ndoschek
Copy link
Member Author

Thanks for the review @sdirix!

Regarding the roo code extension:
According to Roo Code's MCP Server Transports documentation, the "transport": "streamable-http" setting should work with our current implementation, but the error stack trace mentioning "SSE error" suggests Roo may be falling back to or initially trying SSE regardless of the configuration.
We could add additional SSE transport support alongside Streamable HTTP for backwards compatibility (although the SSE is marked as legacy on their side).
But I think this is out of scope for this PR, but we could take a deeper look if it gets more relevant, wdyt?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Waiting on author

Development

Successfully merging this pull request may close these issues.

[ai-mcp] Invalid literal value, expected \"object\"

4 participants