Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ class Anthropic(FunctionCallingLLM):
"For example: tools=[{'type': 'web_search_20250305', 'name': 'web_search', 'max_uses': 3}]"
),
)
mcp_servers: Optional[List[dict]] = Field(
default=None,
description=(
"List of MCP servers to use for the model. "
"For example: mcp_servers=[{'type': 'url', 'url': 'https://mcp.example.com/sse', 'name': 'example-mcp', 'authorization_token': 'YOUR_TOKEN'}]"
),
)

_client: Union[
anthropic.Anthropic, anthropic.AnthropicVertex, anthropic.AnthropicBedrock
Expand Down Expand Up @@ -186,6 +193,7 @@ def __init__(
cache_idx: Optional[int] = None,
thinking_dict: Optional[Dict[str, Any]] = None,
tools: Optional[List[Dict[str, Any]]] = None,
mcp_servers: Optional[List[dict]] = None,
) -> None:
additional_kwargs = additional_kwargs or {}
callback_manager = callback_manager or CallbackManager([])
Expand All @@ -207,6 +215,7 @@ def __init__(
cache_idx=cache_idx,
thinking_dict=thinking_dict,
tools=tools,
mcp_servers=mcp_servers,
)

if region and project_id and not aws_region:
Expand Down Expand Up @@ -293,6 +302,13 @@ def _get_all_kwargs(self, **kwargs: Any) -> Dict[str, Any]:
elif self.tools and "tools" in kwargs:
kwargs["tools"] = [*self.tools, *kwargs["tools"]]

if self.mcp_servers and "mcp_servers" not in kwargs:
kwargs["mcp_servers"] = self.mcp_servers
kwargs["betas"] = ["mcp-client-2025-04-04"]
elif self.mcp_servers and "mcp_servers" in kwargs:
kwargs["mcp_servers"] = [*self.mcp_servers, *kwargs["mcp_servers"]]
kwargs["betas"] = ["mcp-client-2025-04-04"]

return kwargs

def _completion_response_from_chat_response(self, chat_response: AnthropicChatResponse) -> AnthropicCompletionResponse:
Expand Down Expand Up @@ -333,7 +349,7 @@ def chat(self, messages: Sequence[ChatMessage], **kwargs: Any) -> AnthropicChatR
)
all_kwargs = self._get_all_kwargs(**kwargs)

response = self._client.messages.create(
response = self._client.beta.messages.create(
messages=anthropic_messages,
stream=False,
system=system_prompt,
Expand Down Expand Up @@ -374,7 +390,7 @@ def stream_chat(
)
all_kwargs = self._get_all_kwargs(**kwargs)

response = self._client.messages.create(
response = self._client.beta.messages.create(
messages=anthropic_messages, system=system_prompt, stream=True, **all_kwargs
)

Expand Down Expand Up @@ -478,7 +494,7 @@ async def achat(
)
all_kwargs = self._get_all_kwargs(**kwargs)

response = await self._aclient.messages.create(
response = await self._aclient.beta.messages.create(
messages=anthropic_messages,
system=system_prompt,
stream=False,
Expand Down Expand Up @@ -519,7 +535,7 @@ async def astream_chat(
)
all_kwargs = self._get_all_kwargs(**kwargs)

response = await self._aclient.messages.create(
response = await self._aclient.beta.messages.create(
messages=anthropic_messages, system=system_prompt, stream=True, **all_kwargs
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
"claude-3-5-sonnet-v2@20241022": 200000,
"claude-3-5-haiku@20241022": 200000,
"claude-3-7-sonnet@20250219": 200000,
"claude-opus-4@20250514": 200000,
"claude-sonnet-4@20250514": 200000,
}

# Anthropic API/SDK identifiers
Expand All @@ -75,6 +77,12 @@
"claude-3-5-haiku-20241022": 200000,
"claude-3-7-sonnet-20250219": 200000,
"claude-3-7-sonnet-latest": 200000,
"claude-opus-4-0": 200000,
"claude-opus-4-20250514": 200000,
"claude-4-opus-20250514": 200000,
"claude-sonnet-4-0": 200000,
"claude-sonnet-4-20250514": 200000,
"claude-4-sonnet-20250514": 200000,
}

# All provider Anthropic identifiers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ dev = [

[project]
name = "llama-index-llms-anthropic"
version = "0.6.14"
version = "0.6.15"
description = "llama-index llms anthropic integration"
authors = [{name = "Your Name", email = "[email protected]"}]
requires-python = ">=3.9,<4.0"
readme = "README.md"
license = "MIT"
dependencies = [
"anthropic[bedrock, vertex]>=0.51.0",
"anthropic[bedrock, vertex]>=0.52.0",
"llama-index-core>=0.12.36,<0.13",
]

Expand Down
10 changes: 5 additions & 5 deletions llama-index-integrations/llms/llama-index-llms-anthropic/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading