Skip to main content

Model context protocol connector for LangChain

Project description

Langchain Model Context Protocol Connector

Introduction

This project introduces tools to easily integrate Anthropic Model Context Protocol(MCP) with langchain. It provides a simple way to connect to MCP servers and access tools that can be made available to LangChain.

MCP integrations with langchain expands the capabilities of LLM by providing access to an ecosystem of community build servers and additional resources. This means that we do not need to create custom tools for each LLM, but rather use the same tools across different LLMs.

What is the Model Context Protocol (MCP)?

The Model Context Protocol (MCP) is an open-source standard released by Anthropic. The Model Context Protocol highlights the importance of tooling standardisation through open protocols. Specifically, it standardises how applications interact and provide context to LLMs. Just like how HTTP standardises how we communicate across the internet, MCP provides a standard protocol for LLM to interact with external tools. You can find out more about the MCP at https://github.com/modelcontextprotocol and https://modelcontextprotocol.io/introduction.

Example usage

The langchain_mcp_connect contain key methods to determine available tools and resources in the model context protocol. The schemas of input arguments for tools and resources are injected into the system prompt and form part of the initial prompt. Before starting, please ensure you meet the pre-requisites.

For a detail example on how langchain_mcp_connect can be used, see this demo project.

Pre requisites

  1. Install uv

Defining a tool

Define your tool within claude_mcp_config.json file in the root directory. For a list of available tools and how to confiure tools see here.

{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": ["mcp-server-git", "--repository", "./"]
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "./"
      ]
    },
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ENV_GITHUB_PERSONAL_ACCESS_TOKEN"
      }
    }
  }
}

Environment Variables

Managing secrets is a key aspect of any project. The langchain_mcp_connect tool is able to inject secrets from the current environment. To do so, prefix the name of your environment variable with ENV_ in claude_mcp_config.json to inject envrionment variables into the current context. In the example above, ensure you have defined GITHUB_PERSONAL_ACCESS_TOKEN in your current environment with:

export GITHUB_PERSONAL_ACCESS_TOKEN="<YOUR_TOKEN_HERE>"
export OPENAI_API_KEY="<YOUR_KEY_HERE>"

Running the example

uv run src/example/agent.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_mcp_connect-2.0.1.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_mcp_connect-2.0.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file langchain_mcp_connect-2.0.1.tar.gz.

File metadata

File hashes

Hashes for langchain_mcp_connect-2.0.1.tar.gz
Algorithm Hash digest
SHA256 cb25d609588ec7497a649c785ab0020cdba399827e7e73bf9f0c3b7b8c0b82a4
MD5 785567573c906f9680e9ba710803289b
BLAKE2b-256 17d9e38b71985b4b8320638b0a6427cb0ae2fdbe31e530431cdd3bbcb2e7b5d0

See more details on using hashes here.

File details

Details for the file langchain_mcp_connect-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_mcp_connect-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed41656d23a8ccec49a032befe1c31ab641292c810d3b84d2b120f392b6213ac
MD5 6091d8784d23ee476cfa50e5fee6369b
BLAKE2b-256 f9d99ea12895556024b469bc1e1889845c4d18568a74c672ec3dd9317df1d058

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page