Collection of AI agent projects using LangChain, LangGraph, and MCP (Model Context Protocol) for building multi-tool agents with various integrations including Gmail, Google Sheets, Airbnb, Yahoo Finance, and custom tools.
This server exposes only 2 tools with minimal definition quality. The tools are directly borrowed from LangChain's @tool decorator and lack the structured JSON Schema rigor required for reliable agent invocation. The server itself is not an MCP server, it's a LangChain/FastAPI application that references MCP adapters but does not expose an MCP interface. The two tools (web_search, get_weather) are defined in scripts/base_tools.py using LangChain's @tool decorator, not MCP ToolDefinition objects.
Get current weather for a location using WeatherAPI.com. Use for queries about weather, temperature, or conditions in any city. Examples: 'weather in Paris', 'temperature in Tokyo', 'is it raining in London'
Perform a live web search using Ollama Cloud Web Search API for real-time information and news.
No output schema documented for either tool. LLMs cannot plan downstream operations or extract structured data without knowing what fields to expect.
Input parameters lack formal type constraints and constraints. web_search accepts 'query' (string) with no length limits, max_results, or language hints. get_weather accepts 'location' with no validation of expected format (city name vs lat/lon).
No error handling guidance. Tools call external APIs (Ollama Web Search, WeatherAPI) without documented fallback behavior or recovery instructions for LLMs. If Ollama returns malformed JSON or WeatherAPI rate-limits, LLM has no next-step guidance.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only but lack formal marking. This increases LLM uncertainty about retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
API credentials exposed to risk: get_weather reads WEATHER_API_KEY from os.getenv() at tool call time. If this server is ever converted to a true MCP server, the key will appear in parameter logs and traces. Should inject credentials server-side only.
web_search hardcodes max_results=2 with no agent control. If the agent needs more or fewer results, it cannot tune this parameter. Tool is too inflexible.