Skip to main content
Glama

AI-Powered MCP Server

by larryfang
langchain_mcp_agent.py2.77 kB
from langchain_openai import ChatOpenAI from langchain.agents import initialize_agent, Tool from langchain.agents.agent_types import AgentType from langchain.tools import tool import requests import logging import os # Set up logging logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s") # Your MCP server URL (make sure this is set in your environment) MCP_SERVER = os.getenv("MCP_SERVER_URL", "http://localhost:3000") # Tool: Get SMS Context @tool def get_sms_context_tool(phone_number: str) -> str: """Get the recent SMS context for a given phone number.""" res = requests.post(f"{MCP_SERVER}/context", json={"phone_number": phone_number}) if res.status_code != 200: return f"❌ Failed to retrieve context: {res.text}" data = res.json() summary = data.get("summary", "No summary available.") prompt = data.get("prompt_context", "") context_blocks = data.get("context", []) reply_block = "" for section in context_blocks: label = section.get("label", "Context") lines = "\n".join( f"- {v.get('content') or v.get('status') or '[no content]'} ({v.get('date_received', 'no date')})" if isinstance(v, dict) else f"- {v}" for v in section.get("value", []) ) reply_block += f"\n📌 {label}:\n{lines}\n" return f"""📬 SMS Summary for {phone_number}: {summary} 🧠 GPT Prompt Context: {prompt} {reply_block}""" # Tool: Send SMS @tool def send_sms_tool(destination_number: str, content: str) -> str: """Send an SMS to the specified phone number.""" res = requests.post(f"{MCP_SERVER}/send", json={ "messages": [ { "destination_number": destination_number, "content": content, "format": "SMS", "delivery_report": True } ] }) if res.status_code != 200: return f"❌ Failed to send SMS: {res.text}" data = res.json() return f"✅ Message sent to {destination_number}. Message ID: {data.get('message_id')}" # Set up OpenAI model llm = ChatOpenAI(model="gpt-4", temperature=0) # Define agent tools tools = [get_sms_context_tool, send_sms_tool] # Initialize agent agent_executor = initialize_agent( tools=tools, llm=llm, agent=AgentType.OPENAI_FUNCTIONS, verbose=True ) # Run loop for user testing if __name__ == "__main__": while True: try: user_input = input("🧠 Ask something (or type 'exit'): ") if user_input.lower() in ["exit", "quit"]: break result = agent_executor.run(user_input) print("🤖", result) except Exception as e: print("❌ Error:", e)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/larryfang/sms-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server