Skip to main content
Glama
PlayAINetwork

ChainGPT AI News MCP Server

README.md
# ChainGPT AI News MCP Server

A Model Context Protocol (MCP) server that provides access to AI-related crypto and Web3 news through the ChainGPT AI News API.

## Features

- **Smart Filtering**: Filter news by categories, blockchains, tokens, and keywords
- **Date Range Support**: Fetch news from specific time periods
- **Category Mapping**: Supports 20+ categories including DeFi, NFTs, Gaming, DAOs, and more
- **Blockchain Coverage**: Covers 40+ blockchains including Ethereum, Bitcoin, Solana, Polygon, and others
- **Token Tracking**: Track news for 30+ major cryptocurrencies
- **Pagination**: Handle large result sets with limit/offset controls
- **Real-time Data**: Access to the latest crypto and Web3 news


## Integration with MCP Clients

### Claude Desktop

Add to your Claude Desktop configuration:

```json

{
  "mcpServers": {
    "chaingpt-mcp": {
      "command": "npx",
      "args": ["chaingpt-mcp-server"],
      "env": {
        "CHAINGPT_API_KEY": ""
      }
    }
  }
}
```


## Installation

### Prerequisites

- Node.js 18+ 
- npm or yarn
- ChainGPT API key

### Setup

1. **Clone the repository:**
```bash
git clone https://github.com/PlayAINetwork/Chaingpt-mcp.git
cd <folder-name>
```

2. **Install dependencies:**
```bash
pnpm install
```

3. **Set up environment variables:**
```bash
export CHAINGPT_API_KEY=your_api_key_here
```

Or create a `.env` file:
```env
CHAINGPT_API_KEY=your_api_key_here
```

4. **Run the server:**
```bash
node index.js
```

## Getting a ChainGPT API Key

1. Visit [ChainGPT's website](https://chaingpt.org/)
2. Sign up for an account
3. Navigate to the API section
4. Generate your API key
5. Add it to your environment variables

## Usage

### Basic Usage

The server provides a single tool called `getAINews` with the following parameters:

```javascript
{
  categories: ["defi", "nft"],           // Optional: Filter by categories
  blockchains: ["ethereum", "solana"],  // Optional: Filter by blockchains
  tokens: ["bitcoin", "ethereum"],      // Optional: Filter by tokens
  searchQuery: "AI development",        // Optional: Keyword search
  fetchAfter: "2024-01-01T00:00:00Z",  // Optional: Date filter
  limit: 10,                           // Optional: Number of results (default: 10)
  offset: 0                            // Optional: Pagination offset (default: 0)
}
```

### Example Queries

**Get latest DeFi news:**
```json
{
  "categories": ["defi"],
  "limit": 5
}
```

**Get Ethereum-related news from the last week:**
```json
{
  "blockchains": ["ethereum"],
  "fetchAfter": "2024-01-01T00:00:00Z",
  "limit": 20
}
```

**Search for AI-related crypto news:**
```json
{
  "searchQuery": "artificial intelligence",
  "categories": ["cryptocurrency", "web3"],
  "limit": 15
}
```

### Response Format

The server returns structured JSON responses:

```json
{
  "status": "success",
  "metadata": {
    "totalResults": 10,
    "limit": 10,
    "offset": 0,
    "appliedFilters": {
      "categories": ["defi"],
      "blockchains": [],
      "tokens": [],
      "searchQuery": null,
      "fetchAfter": null,
      "mappedIds": {
        "categoryIds": [5],
        "subCategoryIds": [],
        "tokenIds": []
      }
    },
    "timestamp": "2024-01-15T10:30:00Z"
  },
  "data": [
    {
      "id": "article_id",
      "title": "Latest DeFi Development",
      "description": "Article description...",
      "url": "https://example.com/article",
      "publishedAt": "2024-01-15T09:00:00Z",
      "source": "CryptoNews",
      "category": "DeFi",
      "blockchain": "Ethereum"
    }
  ]
}
```

## Error Handling

The server provides detailed error responses:

```json
{
  "status": "error",
  "message": "ChainGPT API key not found. Please set the CHAINGPT_API_KEY environment variable.",
  "suggestion": "Add CHAINGPT_API_KEY=your_api_key to your environment variables"
}
```

Common error scenarios:
- Missing API key
- Invalid date format
- API rate limiting
- Network connectivity issues

## Development

### Project Structure

```
chaingpt-ainews-mcp/
├── index.js              # Main server file
├── package.json          # Dependencies and scripts
├── README.md            # This file
├── .env.example         # Environment variables template
└── .gitignore          # Git ignore rules
```

### Dependencies

- `@modelcontextprotocol/sdk` - MCP SDK
- `@chaingpt/ainews` - ChainGPT AI News API client
- `zod` - Schema validation

### Contributing

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/your-feature`
3. Make your changes
4. Add tests if applicable
5. Commit your changes: `git commit -m 'Add some feature'`
6. Push to the branch: `git push origin feature/your-feature`
7. Submit a pull request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- Issues: [GitHub Issues](https://github.com/PlayAINetwork/Chaingpt-mcp/issues)
- Discussions: [GitHub Discussions](https://github.com/PlayAINetwork/Chaingpt-mcp/discussions)

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no ambiguity between tools. The agent can only select this single tool, making misselection impossible.

Naming Consistency5/5

With a single tool, naming conventions are trivially consistent. The name 'getAINews' follows camelCase and clearly describes the action.

Tool Count2/5

A single tool is far below the typical 3-15 range for a news server. While the scope is narrow, more tools (e.g., categories, search, trending) would likely be expected.

Completeness3/5

The tool provides fetching news with filters, which covers the primary use case. However, missing operations like retrieving specific articles, managing sources, or subscribing leave notable gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues