Skip to content

feat: added mcp as a test type#84

Draft
constantinius wants to merge 5 commits intomainfrom
feat/mcp-type
Draft

feat: added mcp as a test type#84
constantinius wants to merge 5 commits intomainfrom
feat/mcp-type

Conversation

@constantinius
Copy link
Collaborator

@linear
Copy link

linear bot commented Mar 4, 2026

.replace("sync", "s");
.replace("sync", "s")
.replace("stdio", "io")
.replace("sse", "sse");

Check warning

Code scanning / CodeQL

Replacement of a substring with itself Medium

This replaces 'sse' with itself.

Copilot Autofix

AI 9 days ago

In general, to fix a “replacement of a substring with itself” issue, either remove the redundant .replace call if no transformation is needed, or change the replacement string so it reflects the intended transformation. Here, we should avoid changing the program’s behavior beyond removing the no-op; altering the output for "sse" (e.g., to "se" or "e") would be speculative and might break expectations elsewhere.

The best minimal fix is therefore to delete the .replace("sse", "sse") call from the abbreviateMode function in .github/scripts/compare-ctrf.cjs. This keeps the existing abbreviations unchanged and simply stops doing a useless, confusing operation. Concretely, update the function body so it ends with .replace("lowlevel", "lo") as the last replacement. No new imports, methods, or additional definitions are required.

Suggested changeset 1
.github/scripts/compare-ctrf.cjs

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/scripts/compare-ctrf.cjs b/.github/scripts/compare-ctrf.cjs
--- a/.github/scripts/compare-ctrf.cjs
+++ b/.github/scripts/compare-ctrf.cjs
@@ -365,8 +365,7 @@
     .replace("sync", "s")
     .replace("stdio", "io")
     .replace("highlevel", "hi")
-    .replace("lowlevel", "lo")
-    .replace("sse", "sse");
+    .replace("lowlevel", "lo");
 }
 
 // Group all tests by type, separately for main and PR
EOF
@@ -365,8 +365,7 @@
.replace("sync", "s")
.replace("stdio", "io")
.replace("highlevel", "hi")
.replace("lowlevel", "lo")
.replace("sse", "sse");
.replace("lowlevel", "lo");
}

// Group all tests by type, separately for main and PR
Copilot is powered by AI and may make mistakes. Always verify output.
@github-actions
Copy link

github-actions bot commented Mar 4, 2026

🔴 AI SDK Integration Test Results

Status: 3 regressions detected

Summary

Metric main PR Change
Total Tests 384 424 +40
Passed 190 224 +34 ✅
Failed 194 200 +6 ⚠️

🔴 Regressions

These tests were passing on main but are now failing:

node/langchain :: Multi-Turn LLM Test (streaming)

Error: 1 check(s) failed:

1 check(s) failed:
Input token progression failed: tokens should increase with each turn
gen_ai.response.model is missing (optional but recommended)
gen_ai.response.model is missing (optional but recommended)
gen_ai.response.model is missing (optional but recommended)
node/langchain :: Multi-Turn LLM Test (blocking)

Error: 1 check(s) failed:

1 check(s) failed:
Input token progression failed: tokens should increase with each turn
gen_ai.response.model is missing (optional but recommended)
gen_ai.response.model is missing (optional but recommended)
gen_ai.response.model is missing (optional but recommended)
node/openai :: Multi-Turn LLM Test (blocking)

Error: 1 check(s) failed:

1 check(s) failed:
Input token progression failed: tokens should increase with each turn

✅ Fixed

These tests were failing on main but are now passing:

  • python/google-genai :: Conversation ID LLM Test (sync, blocking)

🆕 New Tests

Passing (36):

  • node/mcp :: Basic MCP Tool Call Test (stdio)
  • node/mcp :: Basic MCP Tool Call Test (sse)
  • node/mcp :: MCP Tool Error Test (stdio)
  • node/mcp :: MCP Tool Error Test (sse)
  • node/mcp :: MCP Multiple Tool Calls Test (stdio)
  • node/mcp :: MCP Multiple Tool Calls Test (sse)
  • node/mcp :: MCP Resource Read Test (stdio)
  • node/mcp :: MCP Resource Read Test (sse)
  • node/mcp :: MCP Prompt Get Test (stdio)
  • node/mcp :: MCP Prompt Get Test (sse)
  • python/fastmcp :: Basic MCP Tool Call Test (async, blocking, stdio)
  • python/fastmcp :: Basic MCP Tool Call Test (async, blocking, sse)
  • python/fastmcp :: MCP Tool Error Test (async, blocking, stdio)
  • python/fastmcp :: MCP Tool Error Test (async, blocking, sse)
  • python/fastmcp :: MCP Multiple Tool Calls Test (async, blocking, stdio)
  • python/fastmcp :: MCP Multiple Tool Calls Test (async, blocking, sse)
  • python/fastmcp :: MCP Resource Read Test (async, blocking, stdio)
  • python/fastmcp :: MCP Resource Read Test (async, blocking, sse)
  • python/fastmcp :: MCP Prompt Get Test (async, blocking, stdio)
  • python/fastmcp :: MCP Prompt Get Test (async, blocking, sse)
  • python/mcp :: Basic MCP Tool Call Test (async, blocking, stdio, highlevel)
  • python/mcp :: Basic MCP Tool Call Test (async, blocking, stdio, lowlevel)
  • python/mcp :: Basic MCP Tool Call Test (async, blocking, sse, highlevel)
  • python/mcp :: MCP Tool Error Test (async, blocking, stdio, highlevel)
  • python/mcp :: MCP Tool Error Test (async, blocking, stdio, lowlevel)
  • python/mcp :: MCP Tool Error Test (async, blocking, sse, highlevel)
  • python/mcp :: MCP Tool Error Test (async, blocking, sse, lowlevel)
  • python/mcp :: MCP Multiple Tool Calls Test (async, blocking, stdio, highlevel)
  • python/mcp :: MCP Multiple Tool Calls Test (async, blocking, stdio, lowlevel)
  • python/mcp :: MCP Multiple Tool Calls Test (async, blocking, sse, highlevel)
  • python/mcp :: MCP Resource Read Test (async, blocking, stdio, highlevel)
  • python/mcp :: MCP Resource Read Test (async, blocking, stdio, lowlevel)
  • python/mcp :: MCP Resource Read Test (async, blocking, sse, highlevel)
  • python/mcp :: MCP Prompt Get Test (async, blocking, stdio, highlevel)
  • python/mcp :: MCP Prompt Get Test (async, blocking, stdio, lowlevel)
  • python/mcp :: MCP Prompt Get Test (async, blocking, sse, highlevel)

Failing (4):

python/mcp :: Basic MCP Tool Call Test (async, blocking, sse, lowlevel)

Error: 1 check(s) failed:

1 check(s) failed:
Expected 1 MCP span(s) but found 0
python/mcp :: MCP Multiple Tool Calls Test (async, blocking, sse, lowlevel)

Error: 2 check(s) failed:

2 check(s) failed:
Expected 2 MCP span(s) but found 0
Expected 2 MCP tool span(s) but found 0
python/mcp :: MCP Resource Read Test (async, blocking, sse, lowlevel)

Error: 1 check(s) failed:

1 check(s) failed:
Expected 1 MCP span(s) but found 0
python/mcp :: MCP Prompt Get Test (async, blocking, sse, lowlevel)

Error: 1 check(s) failed:

1 check(s) failed:
Expected 1 MCP span(s) but found 0

Test Matrix

Agent Tests

SDK Basic Agent Test Conversation ID Agent Test Long Input Agent Test Tool Call Agent Test Tool Error Agent Test Vision Agent Test
nextjs/mastra
nextjs/vercel blkstr blkstr blkstr blkstr blkstr blkstr
node/manual
node/mastra
node/vercel
php/laravel blkstr blkstr blkstr blkstr blkstr blkstr
python/langgraph as as as as as as
python/manual as as as as as as
python/openai-agents
python/pydantic-ai

Embedding Tests

SDK Basic Embeddings Test
browser/google-genai
browser/langchain
browser/openai
nextjs/google-genai
nextjs/langchain
nextjs/openai
nextjs/vercel
node/google-genai
node/langchain
node/openai
node/vercel
php/laravel
python/google-genai a, blks, blk
python/langchain a, blks, blk
python/litellm a, blks, blk
python/manual a, blks, blk
python/openai a, blks, blk

LLM Tests

SDK Basic Error LLM Test Basic LLM Test Conversation ID LLM Test Long Input LLM Test Multi-Turn LLM Test Vision LLM Test
browser/anthropic blkstr blkstr blkstr blkstr blkstr blkstr
browser/google-genai blkstr blkstr blkstr blkstr blkstr blkstr
browser/langchain blkstr blkstr blkstr blkstr blkstr blkstr
browser/openai blkstr blkstr blkstr blkstr blkstr blkstr
nextjs/anthropic blkstr blkstr blkstr blkstr blkstr blkstr
nextjs/google-genai blkstr blkstr blkstr blkstr blkstr blkstr
nextjs/langchain blkstr blkstr blkstr blkstr blkstr blkstr
nextjs/openai blkstr blkstr blkstr blkstr blkstr blkstr
node/anthropic blkstr blkstr blkstr blkstr blkstr blkstr
node/google-genai blkstr blkstr blkstr blkstr blkstr blkstr
node/langchain blkstr blkstr blkstr blkstr ❌📉blk ❌📉str blkstr
node/manual
node/openai blkstr blkstr blkstr blkstr ❌📉blkstr blkstr
python/anthropic a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str
python/google-genai a, blka, strs, blks, str a, blka, strs, blks, str a, blka, str ✅🔧s, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str
python/langchain a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str
python/litellm a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str
python/manual a, blks, blk a, blks, blk a, blks, blk a, blks, blk a, blks, blk
python/openai a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str a, blka, strs, blks, str

MCP Tests

SDK Basic MCP Tool Call Test MCP Multiple Tool Calls Test MCP Prompt Get Test MCP Resource Read Test MCP Tool Error Test
node/mcp ✅🆕sse ✅🆕io ✅🆕sse ✅🆕io ✅🆕sse ✅🆕io ✅🆕sse ✅🆕io ✅🆕sse ✅🆕io
python/fastmcp ✅🆕a, blk, sse ✅🆕a, blk, io ✅🆕a, blk, sse ✅🆕a, blk, io ✅🆕a, blk, sse ✅🆕a, blk, io ✅🆕a, blk, sse ✅🆕a, blk, io ✅🆕a, blk, sse ✅🆕a, blk, io
python/mcp ✅🆕a, blk, sse, hi ❌🆕a, blk, sse, lo ✅🆕a, blk, io, hi ✅🆕a, blk, io, lo ✅🆕a, blk, sse, hi ❌🆕a, blk, sse, lo ✅🆕a, blk, io, hi ✅🆕a, blk, io, lo ✅🆕a, blk, sse, hi ❌🆕a, blk, sse, lo ✅🆕a, blk, io, hi ✅🆕a, blk, io, lo ✅🆕a, blk, sse, hi ❌🆕a, blk, sse, lo ✅🆕a, blk, io, hi ✅🆕a, blk, io, lo ✅🆕a, blk, sse, hi ✅🆕a, blk, sse, lo ✅🆕a, blk, io, hi ✅🆕a, blk, io, lo

Legend: ✅ Pass | ❌ Fail | ✅🔧 Fixed | ❌📉 Regressed | ✅🆕 New (pass) | ❌🆕 New (fail) | 🗑️ Removed | str=streaming blk=blocking a=async s=sync io=stdio sse=sse hi=highlevel lo=lowlevel


Generated by AI SDK Integration Tests

Adding capability to add generic options that are propagated to the templates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant