open-index/open-npm huggingface dataset:
npm package: @smcphub/notification
Description: A MCP Server for notification management assistant by SMCPHUB
Author: SMCPHUB
Latest version: 0.0.2

# @smcphub/notification

 ![Version](https://img.shields.io/badge/version-0.0.1-blue.svg?cacheSeconds=2592000)
[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](#)

> SMCPHub Notification Service.

SMCPHub Notification is a notification management service based on the MCP protocol. It supports adding, deleting, querying notifications, and marking notifications as read.

### 🏠 [Homepage](https://smcphub.com)

## Install

Use the official MCP server to integrate this toolkit service:

```sh
npm i @smcphub/server
```
OR
```sh
yarn add @smcphub/server
```

## MCP Server configuration

```json
{
  "mcpServers": {
    "smcphub-server": {
      "command": "npx",
      "args": ["-y", "@smcphub/server@latest"],
      "env": {
        "SMCPHUB_API_KEY": "your api key",
      }
    }
  }
}
```

You can get your API Key from the [API Key Page](https://www.smcphub.com/user/api-key).

## Usage

Use the official MCP Client to connect to this toolkit service:

```js
// import the SDK
import SmcphubClient from '@smcphub/client';

// Instantiate the client
const smcphubClient = new SmcphubClient({
    api_key: 'your-api-key'
});

// Connect the MCP Server
smcphubClient
.connect()
.then(tools => {
    console.log(tools);
})
.catch(err => {
  console.error(err);
});
    
// Call the tool
smcphubClient
.callTool('getEmailAccounts', {})
.then(content => {
    console.log(content);
})
.catch(err => {
  console.error(err);
});
```

- You must set the `SMCPHUB_API_KEY` environment variable for authentication.

## Tool List

### add_notification
- **Description**: 添加通知
- **Parameters**:
  - `source_type`: 来源类型 (string, max length 30)
  - `source_id`: 来源ID (number, integer, non-negative)
  - `type`: 通知类型 (string, max length 50)
  - `title`: 通知标题 (string, max length 255)
  - `content`: 通知内容 (string)
  - `link_url`: 链接URL (string, optional, max length 500)
  - `priority`: 优先级 (number, default 0)
  - `extra_data`: 额外数据 (string, optional, nullable)

### delete_notification
- **Description**: 删除通知
- **Parameters**:
  - `notification_ids`: 通知ID数组 (array of positive integers)

### query_notifications
- **Description**: 分页查询通知
- **Parameters**:
  - `page`: 页码 (number, default 1)
  - `page_size`: 每页数量 (number, default 10, max 100)
  - `user_id`: 用户ID (number, optional, nullable)
  - `source_type`: 来源类型 (string, optional, nullable, max length 30)
  - `is_read`: 是否已读 (number, optional, nullable, 0 or 1)

## Author

👤 [**SMCPHUB**](https://smcphub.com)

## License

Apache-2.0
npm package: @smcphub/search-engine-indexing
Description: A MCP Server for search engine indexing and URL submission to major search engines by SMCPHUB
Author: SMCPHUB
Latest version: 0.0.3

# Search Engine Indexing MCP Server

一个用于搜索引擎索引和 URL 提交的 MCP 服务器，支持百度、必应等主流搜索引擎。

## 功能特性

- 支持百度搜索和必应搜索的 URL 提交
- 自动从数据库查询未推送的 URL
- 智能域名验证和格式化
- 自动更新推送状态

## 安装依赖

```bash
npm install
```

## 环境变量配置

在项目根目录创建 `.env` 文件，配置以下环境变量：

```env
# 百度站长平台 API Token
BAIDU_ACCESS_TOKEN=your_baidu_access_token

# 必应站长工具 API Key
BING_API_KEY=your_bing_api_key

# SMCPHUB API 配置
SMCPHUB_API_KEY=your_smcphub_api_key
```

## 后端服务要求

此服务需要连接到 SMCPHUB 后端 API，后端需要提供以下服务：

### site-management 服务
提供网站管理相关功能：

#### get_unpushed_urls 方法
获取未推送的 URL 记录：
- 参数：`domain` (域名), `limit` (限制条数，默认10)
- 返回：未推送的 URL 列表，包含 `id` 和 `url` 字段

#### update_urls_push_status 方法
更新 URL 推送状态：
- 参数：`domain` (域名), `url_ids` (URL ID 数组)
- 功能：将指定 URL 的 `pushed_to_search_engine` 状态更新为 `true`

### 数据库表结构
后端需要维护以下数据表：

#### ai_sites 表
存储网站域名信息：
- `id`: 主键
- `domain`: 域名
- `user_id`: 用户ID
- `created_at`: 创建时间
- `updated_at`: 更新时间

#### ai_site_urls 表
存储网站 URL 信息：
- `id`: 主键
- `site_id`: 关联的站点ID
- `url`: URL地址
- `pushed_to_search_engine`: 是否已推送到搜索引擎
- `created_at`: 创建时间
- `updated_at`: 更新时间

## 使用方法

### 1. 手动指定 URL 推送

```javascript
{
  "search_engine": "baidu",
  "domain": "https://example.com",
  "urls": [
    "https://example.com/page1",
    "https://example.com/page2"
  ]
}
```

### 2. 自动查询未推送 URL

```javascript
{
  "search_engine": "baidu",
  "domain": "https://example.com"
  // urls 参数为空时，会自动从数据库查询 10 条未推送的 URL
}
```

## 工作流程

1. **URL 获取**: 
   - 如果提供了 `urls` 参数，使用提供的 URL
   - 如果 `urls` 为空，调用后端 API 查询 10 条 `pushed_to_search_engine=0` 的记录
2. **搜索引擎推送**: 根据指定的搜索引擎执行 URL 推送
3. **状态更新**: 推送成功后，调用后端 API 更新对应 URL 的 `pushed_to_search_engine` 状态为 `true`

## 支持的搜索引擎

- **百度** (baidu): 使用百度站长平台 API
- **必应** (bing): 使用必应 IndexNow API

## 错误处理

- 无未推送 URL：当自动查询模式且没有未推送 URL 时返回错误
- API 调用失败：返回具体的错误信息
- 后端服务不可用：返回连接错误信息
- 认证失败：返回 API 密钥错误信息

## 开发说明

### 构建项目

```bash
npm run build
```

### 类型定义

项目使用 TypeScript，包含完整的类型定义。主要类型包括：

- `SearchEngine`: 搜索引擎枚举
- `PushUrlsParams`: 推送参数类型

### 注意事项

1. 确保后端 API 服务正常运行
2. 配置正确的 SMCPHUB API 密钥
3. 确保后端已实现 `site-management` 服务的相关方法
4. 域名和 URL 记录需要先在后端数据库中注册

## 许可证

Apache-2.0