Smithery

LangDB supports MCP servers provided by Smithery.

This particular example is for EXA MCP server.

from openai import OpenAI
from dotenv import load_dotenv
import os
import base64
import json
from urllib.parse import quote
load_dotenv()

def urlEncode(data_dict):
    """Convert dictionary to base64 and then URL encode it"""
    return quote(base64.b64encode(json.dumps(data_dict).encode()).decode())

config = {
    "exaApiKey": os.getenv("EXA_API_KEY")
}

config_str = urlEncode(config)
web_socket_url = "wss://your-mcp-server.com/ws"
extra_body = {
    "mcp_servers": [
        {
            "server_url": f"{web_socket_url}?config={config_str}",
            "type": "ws"
        }
    ]
}
client = OpenAI(
    api_key=os.getenv("LANGDB_API_KEY"),
    base_url=os.getenv("LANGDB_API_URL")

)
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "what is langdb?"}],
    extra_body = extra_body
)
print(response)

Last updated

Was this helpful?