Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

mcp-connector changedagents-and-tools/mcp-connector

Nearest release: v2.1.304, published under an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+100added
Lines−58removed
From line 576 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits32to this page, all time

The whole hunk

from line 576, old and new numbered
/
lines
from line 576
576576 
577577<CodeGroup>
578578 ```bash cURL
579 BODY='{
580 "model": "claude-opus-5-5",
581 "max_tokens": 1024,
582 "mcp_servers": [
583 {
584 "type": "url",
585 "url": "https://example-server.modelcontextprotocol.io/sse",
586 "name": "example-mcp",
587 "authorization_token": "YOUR_TOKEN"
588 }
589 ],
590 "tools": [
591 {
592 "type": "mcp_toolset",
593 "mcp_server_name": "example-mcp"
594 }
595 ],
596 "messages": [
597 {
598 "role": "user",
599 "content": "What tools do you have available?"
600 }
601 ]
602 }'
603 
604579 # First request: the toolset isn't pinned, so the API asks the server for
605580 # its tools and the response starts with an mcp_tool_listing block.
606 # tee shows the response on stderr while the variable captures it.
607 FIRST=$(curl -sS https://api.anthropic.com/v1/messages \
581 curl https://api.anthropic.com/v1/messages \
608582 -H "content-type: application/json" \
609583 -H "x-api-key: $ANTHROPIC_API_KEY" \
610584 -H "anthropic-version: 2023-06-01" \
611585 -H "anthropic-beta: mcp-client-2026-09-15" \
612 -d "$BODY" | tee /dev/stderr)
586 -d '{
587 "model": "claude-opus-5-5",
588 "max_tokens": 1024,
589 "mcp_servers": [
590 {
591 "type": "url",
592 "url": "https://example-server.modelcontextprotocol.io/sse",
593 "name": "example-mcp",
594 "authorization_token": "YOUR_TOKEN"
595 }
596 ],
597 "tools": [
598 {
599 "type": "mcp_toolset",
600 "mcp_server_name": "example-mcp"
601 }
602 ],
603 "messages": [
604 {
605 "role": "user",
606 "content": "What tools do you have available?"
607 }
608 ]
609 }'
613610 
614611 # Pin the list: copy the block's tools into the toolset. The API uses
615 # exactly these entries and doesn't ask the server again.
616 TOOLS=$(jq '.content[] | select(.type == "mcp_tool_listing") | .tools' \
617 <<<"$FIRST")
618 PINNED=$(jq --argjson tools "$TOOLS" '.tools[0].tools = $tools' <<<"$BODY")
619 
620 # With a pinned toolset, the response has no mcp_tool_listing block.
612 # exactly these entries and doesn't ask the server again, so the response
613 # has no mcp_tool_listing block.
621614 curl https://api.anthropic.com/v1/messages \
622615 -H "content-type: application/json" \
623616 -H "x-api-key: $ANTHROPIC_API_KEY" \
624617 -H "anthropic-version: 2023-06-01" \
625618 -H "anthropic-beta: mcp-client-2026-09-15" \
626 -d "$PINNED"
619 -d '{
620 "model": "claude-opus-5-5",
621 "max_tokens": 1024,
622 "mcp_servers": [
623 {
624 "type": "url",
625 "url": "https://example-server.modelcontextprotocol.io/sse",
626 "name": "example-mcp",
627 "authorization_token": "YOUR_TOKEN"
628 }
629 ],
630 "tools": [
631 {
632 "type": "mcp_toolset",
633 "mcp_server_name": "example-mcp",
634 "tools": [
635 {
636 "name": "echo",
637 "description": "Returns the text it receives.",
638 "input_schema": {
639 "type": "object",
640 "properties": { "text": { "type": "string" } },
641 "required": ["text"]
642 }
643 }
644 ]
645 }
646 ],
647 "messages": [
648 {
649 "role": "user",
650 "content": "What tools do you have available?"
651 }
652 ]
653 }'
627654 ```
628655 
629656 ```bash CLI
630 request=$(cat <<'YAML'
657 # First request: the toolset isn't pinned, so the API asks the server for
658 # its tools and the response starts with an mcp_tool_listing block.
659 ant beta:messages create --beta mcp-client-2026-09-15 <<'YAML'
631660 model: claude-opus-5-5
632661 max_tokens: 1024
633662 mcp_servers:
from line 671
642671 - role: user
643672 content: What tools do you have available?
644673 YAML
645 )
646674 
647 # First request: the toolset isn't pinned, so the API asks the server for
648 # its tools and the response starts with an mcp_tool_listing block.
649 # tee shows the response on stderr while the variable captures it.
650 first=$(ant beta:messages create --beta mcp-client-2026-09-15 --format json \
651 <<<"$request" | tee /dev/stderr)
652 tools=$(jq -c '.content[] | select(.type == "mcp_tool_listing") | .tools' \
653 <<<"$first")
654 
655 # Pin the list: copy the block's tools into the toolset. The --tool flag
656 # replaces the body's tools array. The API uses exactly these entries and
657 # doesn't ask the server again, so the response has no mcp_tool_listing block.
658 ant beta:messages create --beta mcp-client-2026-09-15 \
659 --tool "{type: mcp_toolset, mcp_server_name: example-mcp, tools: $tools}" \
660 <<<"$request"
675 # Pin the list: copy the block's tools into the toolset. The API uses
676 # exactly these entries and doesn't ask the server again, so the response
677 # has no mcp_tool_listing block.
678 ant beta:messages create --beta mcp-client-2026-09-15 <<'YAML'
679 model: claude-opus-5-5
680 max_tokens: 1024
681 mcp_servers:
682 - type: url
683 url: https://example-server.modelcontextprotocol.io/sse
684 name: example-mcp
685 authorization_token: YOUR_TOKEN
686 tools:
687 - type: mcp_toolset
688 mcp_server_name: example-mcp
689 tools:
690 - name: echo
691 description: Returns the text it receives.
692 input_schema:
693 type: object
694 properties:
695 text:
696 type: string
697 required:
698 - text
699 messages:
700 - role: user
701 content: What tools do you have available?
702 YAML
661703 ```
662704 
663705 ```python Python
Feedback