# bind_mcp_tools

> **Function** in `langchain_snowflake`

📖 [View in docs](https://reference.langchain.com/python/langchain-snowflake/mcp_integration/bind_mcp_tools)

Bind MCP tools to a ChatSnowflake instance.

This function filters MCP tools for compatibility, converts them to LangChain Tools,
and binds them to the provided LLM using bind_tools().

## Signature

```python
bind_mcp_tools(
    llm,
    mcp_tools: List[Any],
    mcp_session,
    include_patterns: Optional[List[str]] = None,
    exclude_patterns: Optional[List[str]] = None,
    **bind_kwargs = {},
)
```

## Description

**Example:**

>>> from langchain_snowflake import ChatSnowflake, bind_mcp_tools
>>> from langchain_mcp_adapters import load_mcp_tools
>>>
>>> # Load MCP tools
>>> mcp_tools = await load_mcp_tools(mcp_session)
>>>
>>> # Create ChatSnowflake instance
>>> llm = ChatSnowflake(...)
>>>
>>> # Bind MCP tools
>>> agent = bind_mcp_tools(
...     llm,
...     mcp_tools,
...     mcp_session,
...     include_patterns=["database", "query"],
...     exclude_patterns=["admin"]
... )
>>>
>>> # Use the agent
>>> response = await agent.ainvoke("List all databases")

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `llm` | `unknown` | Yes | ChatSnowflake instance or compatible LLM |
| `mcp_tools` | `List[Any]` | Yes | List of MCP tools to bind |
| `mcp_session` | `unknown` | Yes | MCP session for tool execution |
| `include_patterns` | `Optional[List[str]]` | No | Optional patterns to include specific tools (default: `None`) |
| `exclude_patterns` | `Optional[List[str]]` | No | Optional patterns to exclude specific tools (default: `None`) |
| `**bind_kwargs` | `unknown` | No | Additional arguments passed to bind_tools() (default: `{}`) |

## Returns

`null`

LLM instance with bound MCP tools

---

[View source on GitHub](https://github.com/langchain-ai/langchain-snowflake/blob/c7b3fc040db944acce19c2afb245c1735b9b63a2/libs/snowflake/langchain_snowflake/mcp_integration.py#L210)