mcp-ai-agent-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-ai-agent-server What's the weather in Tokyo?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP AI Agent Server
A dual-mode AI agent system that combines the Model Context Protocol (MCP) server capabilities with a standalone CLI agent, powered by LangChain.
π― Two Modes of Operation
1. MCP Server Mode
Run as an MCP server that can be connected to any MCP client (like Claude Desktop) or inspected using the MCP Inspector.
2. CLI Agent Mode
Run as a standalone command-line agent for direct interaction and task execution.
Related MCP server: mcp-server
β¨ Capabilities
π API Interactions: Fetch weather data, news articles, and more
π File Management: Read, write, search, and organize files
π Web Scraping: Extract data from websites
π Data Processing: Analyze and transform data
π‘ AI-Powered Tasks: Use LangChain for intelligent decision-making
π οΈ Tools Available
Weather Tool: Get current weather for any location
News Tool: Fetch latest news articles by topic
File Manager: Create, read, update, delete files
Web Fetcher: Download and parse web content
Calculator: Perform complex calculations
Search Tool: Search files and data
AI Agent: LangChain MCP client powered reasoning and task execution
π¦ Installation
Prerequisites
Python 3.10+
uv package manager
Node.js (for MCP Inspector)
Setup
Clone the repository:
git clone https://github.com/elcaiseri/mcp-ai-agent-server.git
cd mcp-ai-agent-serverInstall dependencies using uv:
uv pip install -e .Set up environment variables:
cp .env.example .env
# Edit .env with your API keysRequired API keys in .env:
OPENAI_API_KEY=your_openai_api_key
OPENWEATHER_API_KEY=your_openweather_api_key
NEWS_API_KEY=your_news_api_keyπ Usage
Mode 1: MCP Server with Inspector
The MCP server can be tested and debugged using the official MCP Inspector tool.
Start the server with inspector:
npx @modelcontextprotocol/inspector uv run python -m src.serverThis will:
Launch the MCP server
Open the MCP Inspector in your browser
Allow you to test all available tools interactively
View request/response logs in real-time
Connect to MCP Clients:
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"ai-agent": {
"command": "uv",
"args": ["run", "python", "-m", "src.server"],
"cwd": "/path/to/mcp-ai-agent-server"
}
}
}Mode 2: Standalone CLI Agent
Run the agent directly from the command line for interactive sessions.
Start the CLI agent:
uv run python -m src.clientExample interactions:
> What's the weather in Tokyo?
> Fetch the latest news about AI
> Create a file called notes.txt with today's summary
> Search for all Python files in the current directoryThe CLI agent uses LangChain MCP Client to:
Understand natural language commands
Select appropriate tools automatically
Chain multiple operations together
Provide conversational responses
π Tool Examples
Weather Tool
# Get current weather for a location
get_weather(location="New York")
# Returns: temperature, conditions, humidity, wind speedNews Tool
# Get latest news on a topic
fetch_news(topic="technology", limit=5)
# Returns: list of articles with title, description, URLFile Operations
# Create a file
create_file(path="data/output.txt", content="Hello World")
# Read a file
read_file(path="data/input.txt")
# Search files
search_files(directory=".", pattern="*.py")Web Fetching
# Fetch webpage content
fetch_webpage(url="https://example.com")
# Returns: parsed HTML content and textAI Agent Tasks
# Execute complex multi-step tasks
execute_agent_task(task="Analyze the weather in Tokyo and write a report")ποΈ Architecture
mcp-ai-agent-server/
βββ src/
β βββ server.py # Main MCP server implementation
β βββ client.py # Standalone CLI agent implementation
β βββ tools/ # Individual tool implementations
β β βββ weather.py
β β βββ news.py
β β βββ file_manager.py
β β βββ web_fetcher.py
β β βββ calculator.py
β βββ utils/ # Utilities
β βββ config.py
βββ tests/ # Test suite
βββ pyproject.toml # Project configuration
βββ .env.example # Environment template
βββ README.mdπ§ Development
Running Tests
uv run pytestCode Formatting
uv run black src/
uv run ruff check src/License
MIT License
π€ Contributing
Contributions welcome! Please feel free to submit a Pull Request.
Available Tools
16 toolscalculateA
Evaluate a mathematical expression safely.
Args: expression: Mathematical expression (e.g., "2 + 2", "sqrt(16)")
Returns: Calculation result
Inputs: expression (required).
convert_unitsA
Convert between units.
Args: value: Numeric value to convert from_unit: Unit to convert from to_unit: Unit to convert to
Supported conversions:
Temperature: celsius, fahrenheit, kelvin
Length: meter, kilometer, mile, foot, inch
Weight: kilogram, gram, pound, ounce
Inputs: value (required), to_unit (required), from_unit (required).
create_fileC
Create a new file with content.
Args: path: File path (relative to data directory) content: File content
Returns: Result dictionary
Inputs: path (required), content (required).
delete_fileB
Delete a file.
Args: path: File path (relative to data directory)
Returns: Result dictionary
Inputs: path (required).
execute_commandA
Execute an arbitrary shell command with full control over execution context.
This method allows running simple commands (e.g., ls, cat, echo, pwd, mv) as well as
complex shell pipelines and redirections (e.g., grep pattern file | sort > output.txt).
It captures both standard output and standard error, and returns structured results.
Args: command (str): Command to execute (any valid shell command) cwd (str, optional): Relative Working directory (defaults to data directory) timeout (int, optional): Command timeout in seconds
Returns: Result dictionary with stdout, stderr, and return code
Inputs: command (required), cwd, timeout.
fetch_newsC
Fetch news articles on a topic.
Args: topic: Search query/topic limit: Number of articles to return language: Language code (default: en)
Returns: Dictionary with news articles
Inputs: topic (required), limit, language.
fetch_webpageB
Fetch content from a webpage.
Args: url: URL to fetch extract_text: If True, extract and clean text content
Returns: Webpage content and metadata
Inputs: url (required), extract_text.
forget_memoryA
Remove one or all items from persistent memory.
If the input key is "ALL", the entire memory store is cleared.
Otherwise, only the specified key will be removed if it exists.
Args:
input_data (Dict[str, Any]):
A dictionary containing a single key "key" that specifies
which memory entry to remove, or "ALL" to clear all entries.
Returns: Dict[str, Any]: A result dictionary indicating success, failure, or whether the requested key was not found.
Inputs: input_data (required).
get_weatherA
Get current weather for a location.
Args: location: City name or "City, Country Code"
Returns: Dictionary with weather information
Inputs: location (required).
list_directoryB
List contents of a directory.
Args: directory: Directory path (relative to data directory)
Returns: Directory contents
Inputs: directory.
read_fileB
Read file content.
Args: path: File path (relative to data directory)
Returns: File content and metadata
Inputs: path (required).
retrieve_current_working_directoryA
Retrieve the current working directory used as the base data path. This directory serves as the root location for all tools or operations that require file paths, relative directories, or working directory references.
Returns: Result Working Directory Path dictionary
Inputs: no named parameters.
retrieve_memoryB
Retrieve the entire memory store.
Returns: Any: The complete memory store as a dictionary.
Inputs: no named parameters.
search_filesB
Search for files matching a pattern.
Args: directory: Directory to search (relative to data directory) pattern: Glob pattern (e.g., ".txt", "data_")
Returns: List of matching files
Inputs: pattern, directory.
store_memoryA
Store one or more keyβvalue pairs in persistent memory. This method updates the existing memory store with the provided keyβvalue pairs. If a key already exists, its value will be overwritten.
Args: input_data (Dict[str, Any]): A dictionary containing one or more keyβvalue pairs to be stored.
Returns: Dict[str, Any]: A result dictionary indicating success and listing the stored items.
Inputs: input_data (required).
update_fileC
Update existing file content.
Inputs: path (required), content (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 16 tools
Most tools are clearly distinct, but execute_command is very broad and could be used to replicate file operations or other tasks, causing potential overlap. Otherwise, file operations, memory, and web fetching are well-separated.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_file, fetch_webpage, store_memory). Even longer names like retrieve_current_working_directory adhere to the pattern. No mixing of conventions.
16 tools is a well-scoped set for an AI agent server, covering file operations, web fetching, weather, news, computation, unit conversion, and memory. Each tool has a clear role without being excessive.
The tool set covers most key operations for its domain: CRUD for files, memory storage and retrieval, web and news fetching, weather, calculation, and conversions. Minor gaps exist (e.g., no explicit memory update function, but store can overwrite), but overall it is comprehensive.
Maintenance
Related MCP Connectors
Official MCP server for Agentwork β delegate tasks to AI agents with human-in-the-loop
Nifty's MCP server β exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI dialogue using various LLM models via AceDataCloud
Web search API and MCP server for developers building AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server with real AI capabilities (OpenAI/Anthropic) for natural language understanding, multi-step planning, and autonomous task execution, enabling intelligent file analysis, weather-based planning, and more.556 npmISC
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides weather and web search tools, orchestrated by a LangGraph agent with OpenAI for natural language interaction.8-
- FlicenseNot gradedqualityDmaintenanceAn MCP server integrating LangChain, RAG, and Agent to provide knowledge retrieval and tool invocation through natural language.-
- FlicenseNot gradedqualityDmaintenanceA proof-of-concept MCP server that enables LLMs to read local text files and fetch real-time weather data through external tools.-