Skip to main content
Glama
README.md
# 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]

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: add_blog creates new blogs, get_blogs retrieves all blogs, and search_blogs finds blogs by title. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: add_blog, get_blogs, and search_blogs. This predictability enhances readability and usability across the tool set.

Tool Count3/5

With only 3 tools, the set feels thin for a blog API that typically requires CRUD operations. While the tools cover creation and retrieval, the absence of update and delete tools limits the server's scope, making it borderline appropriate.

Completeness2/5

The tool set is significantly incomplete for a blog API domain. It lacks update_blog and delete_blog tools, preventing full lifecycle management. This gap will likely cause agent failures when attempting to modify or remove blogs.

Maintenance

ActivityInactive
ResponsivenessNo issues