README.md•2.22 kB
# MCP Blog API
A simple blog API service built with FastMCP and httpx. This project supports uv for fast, reliable Python package management and environment setup.
## Description
This project provides a set of API tools to interact with a mock blog API service. It allows users to fetch all blogs, search for blogs by title, and add new blog posts. The project includes a uv.lock file for reproducible dependency management.
## Features
- Fetch all blogs from the mock API
- Search for blogs by title
- Add new blog posts
## Requirements
- Python 3.13 or higher
- httpx 0.28.1 or higher
- mcp 1.9.0 or higher
## Installation
### Using uv (Recommended)
```bash
# Clone the repository
git clone https://github.com/yourusername/mcp-blog.git
cd mcp-blog
# Install dependencies with uv
uv pip install -e .
```
### Using pip
```bash
# Clone the repository
git clone https://github.com/yourusername/mcp-blog.git
cd mcp-blog
# Install dependencies
pip install -e .
```
## Usage
```python
# Import the MCP server
from main import mcp
# Get all blogs
blogs = mcp.tools.get_blogs()
# Search for blogs by title
search_results = mcp.tools.search_blogs(query="Python")
# Add a new blog
new_blog = mcp.tools.add_blog(title="My New Blog", body="This is the content of my new blog post.")
```
## Running the Server
### Using uv (Recommended)
```bash
uv python main.py
```
### Using standard Python
```bash
python main.py
```
## Environment Management
### Using uv (Recommended)
uv provides fast environment management for Python projects. Here's how to create and manage a virtual environment for this project:
```bash
# Create a new virtual environment
uv venv
# Activate the virtual environment
# On Unix/macOS
source .venv/bin/activate
# On Windows
.venv\Scripts\activate
# Install dependencies in the virtual environment
uv pip install -e .
# Update dependencies
uv pip sync
```
## API Reference
### get_blogs()
Fetches all blogs from the mock API.
### search_blogs(query: str)
Searches for blogs by title using the mock API.
### add_blog(title: str, body: str)
Adds a new blog to the mock API.
## License
[Add your license information here]
## Contributing
[Add contribution guidelines here]