Skip to main content
Glama
wangtsiao

Pulse CN MCP Server

by wangtsiao
README.md
<div align="center">

# ๐Ÿ”ฅ Pulse CN MCP Server

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![TypeScript](https://img.shields.io/badge/TypeScript-4.x-blue)](https://www.typescriptlang.org/)
[![smithery badge](https://smithery.ai/badge/@wangtsiao/pulse-cn-mcp)](https://smithery.ai/server/@wangtsiao/pulse-cn-mcp)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)

A powerful Model Context Protocol (MCP) server providing real-time trending content from the Chinese internet.

[Features](#features) โ€ข [Installation](#installation) โ€ข [Quick Start](#quick-start) โ€ข [Documentation](#documentation) โ€ข [Contributing](#contributing) โ€ข [License](#license)

</div>

## ๐ŸŒŸ Overview

Pulse CN MCP Server enables AI models to access up-to-date information about what's trending on the Chinese internet. Built with the Model Context Protocol (MCP), it acts as a bridge between AI models and real-time data from China's most popular social media platforms, news sites, and content aggregators.

## โœจ Features

The server provides real-time access to trending data from 18 major Chinese platforms:

| Platform | Content | Status |
|----------|---------|--------|
| ๐Ÿ”ฎ **ๆ˜Ÿๅบง่ฟๅŠฟ** | Daily horoscope predictions | โœ… |
| ๐Ÿ’ฌ **ๆฏๆ—ฅไธ€ๅฅๅŠฑๅฟ—่‹ฑ่ฏญ** | Daily motivational English quotes | โœ… |
| ๐Ÿ“Š **็ƒญๆœ็ƒญๆฆœ่šๅˆ** | Aggregated trending topics | โœ… |
| ๐Ÿ”ฅ **ๅพฎๅšๅฎžๆ—ถ็ƒญๆœ** | Weibo real-time trending topics | โœ… |
| ๐Ÿ“ฐ **ไปŠๆ—ฅๅคดๆก็ƒญๆœ** | Today's Headlines trending news | โœ… |
| ๐Ÿ“ **ๆพŽๆนƒๆ–ฐ้—ป็ƒญๆœ** | ThePaper.cn news trending topics | โœ… |
| ๐Ÿ€ **่™Žๆ‰‘ๆญฅ่กŒ่ก—็ƒญๆœ** | Hupu BXJ real-time trends | ๐Ÿ”œ |
| โ“ **็ŸฅไนŽๅฎžๆ—ถ็ƒญๆœ** | Zhihu real-time trending topics | ๐Ÿ”œ |
| ๐Ÿ“” **็ŸฅไนŽๆฏๆ—ฅๆ—ฅๆŠฅ** | Zhihu daily digest | ๐Ÿ”œ |
| ๐Ÿ’ผ **36ๆฐช24ๅฐๆ—ถ็ƒญๆฆœ** | 36Kr 24-hour trending business news | ๐Ÿ”œ |
| ๐ŸŽฌ **ๅ“”ๅ“ฉๅ“”ๅ“ฉๅ…จ็ซ™ๆ—ฅๆฆœ** | Bilibili daily rankings | ๐Ÿ”œ |
| ๐Ÿ” **็™พๅบฆ็ƒญ็‚น็ƒญๆฆœ** | Baidu trending topics | ๐Ÿ”œ |
| ๐Ÿ“ฑ **ๆŠ–้Ÿณ็ƒญ็‚น็ƒญๆฆœ** | Douyin trending topics | ๐Ÿ”œ |
| ๐Ÿ‘ฅ **่ฑ†็“ฃๅฐ็ป„็ฒพ้€‰** | Douban group featured content | ๐Ÿ”œ |
| ๐Ÿ’ป **IT่ต„่ฎฏ็ƒญๆฆœ** | IT news trending topics | ๐Ÿ”œ |
| ๐Ÿ“ˆ **่™Žๅ—…็ฝ‘็ƒญๆฆœ** | Huxiu 24-hour trending topics | ๐Ÿ”œ |
| ๐Ÿ“ฑ **ไบงๅ“็ป็†็ƒญๆ–‡ๆฆœ** | Woshipm daily popular articles | ๐Ÿ”œ |
| ๐Ÿž **่™ซๆ—้ƒจ่ฝๆœ€ๆ–ฐ็ƒญ้—จ** | Chongbuluo latest popular content | ๐Ÿ”œ |

## ๐Ÿš€ Installation

```bash
# Clone the repository
git clone https://github.com/wangtsiao/pulse-cn-mcp.git

# Navigate to the project directory
cd pulse-cn-mcp

# Using npm
npm install
npm run build

# Or using Bun (faster)
bun install
bun run build
```

## โšก Quick Start

Start the MCP server with:

```bash
# Using npm
npm start

# Or using Bun
bun start
```

This launches the server using the Stdio transport, making it ready for MCP-compatible AI models to connect.

## ๐Ÿ“– Documentation

### Architecture

Pulse CN MCP Server follows a modular architecture with individual tools for each data source:

```
src/
โ”œโ”€โ”€ index.ts            # Main entry point and server setup
โ””โ”€โ”€ tools/              # Individual tool implementations
    โ”œโ”€โ”€ weiboHotspots.js
    โ”œโ”€โ”€ horoscope.js
    โ”œโ”€โ”€ dailyEnglishSentence.js
    โ”œโ”€โ”€ internetHotspotsAggregator.js
    โ”œโ”€โ”€ todayHeadlinesHotspots.js
    โ”œโ”€โ”€ paperNewsHotspots.js
    โ””โ”€โ”€ otherHotspots.js
```

### Available Tools

#### Fully Implemented

| Tool Name | Description | Endpoint |
|-----------|-------------|----------|
| `weibo-hotspots` | Real-time trending topics from Weibo | `/weibo-hotspots` |
| `horoscope` | Daily horoscope by zodiac sign | `/horoscope` |
| `daily-english-sentence` | Daily motivational English quotes | `/daily-english-sentence` |
| `internet-hotspots-aggregator` | Aggregated trending topics | `/internet-hotspots-aggregator` |
| `today-headlines-hotspots` | Today's Headlines trending topics | `/today-headlines-hotspots` |
| `paper-news-hotspots` | ThePaper.cn trending news | `/paper-news-hotspots` |

#### Coming Soon

- `hupu-pedestrian-street-hotspots`
- `zhihu-realtime-hotspots`
- `zhihu-daily-hotspots`
- `36-krypton-24-hour-hotspots`
- `bilibili-daily-hotspots`
- `baidu-hotspots`
- `douyin-hotspots`
- `douban-group-hotspots`
- `huxiu-hotspots`
- `product-manager-hotspots`
- `in-information-hotspots`
- `insect-hotspots`

### Integration Example

Here's how to integrate with the server using TypeScript:

```typescript
import { McpClient } from "@modelcontextprotocol/sdk/client";

async function example() {
  const client = new McpClient();
  
  // Get Weibo trending topics
  const weiboHotspots = await client.callTool("weibo-hotspots", {});
  console.log(weiboHotspots.content);
  
  // Get daily horoscope for Aries
  const horoscope = await client.callTool("horoscope", { sign: "aries" });
  console.log(horoscope.content);
}
```

## ๐Ÿ› ๏ธ Development

### Adding a New Tool

1. Create a new file in `src/tools/` (e.g., `myNewTool.ts`)
2. Implement your tool using the MCP Server SDK
3. Register the tool in `src/index.ts`

Example:

```typescript
// src/tools/myNewTool.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

export function registerMyNewTool(server: McpServer) {
  server.tool(
    "my-new-tool",
    "Description of my new tool",
    {
      // Tool parameters schema
      param1: z.string().describe("Parameter description")
    },
    async (params) => {
      // Tool implementation
      return {
        content: [
          { type: "text", text: "Result of my tool" }
        ]
      };
    }
  );
}

// src/index.ts - Add import and registration
import { registerMyNewTool } from './tools/myNewTool.js';
// ...
registerMyNewTool(server);
```

## ๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the project
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## ๐Ÿ“„ License

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

## ๐Ÿ™ Acknowledgements

This project utilizes the free APIs provided by [้Ÿฉๅฐ้ŸฉAPI](https://api.vvhan.com/). We express our sincere gratitude for their excellent service and support.

---

<div align="center">
  <sub>Built with โค๏ธ by wangtsiao</sub>
</div>