TDK MCP 插件 API 文档
概述
TDK MCP 插件是一个通过 MCP (Model Context Protocol) 自动生成和修改文章 TDK(标题、描述、关键字)的插件。该插件提供了多个工具,用于获取 CMS 系统中的栏目信息、内容列表、内容详情,以及设置文章的 TDK 信息。
环境配置
配置AI聊天MCP工具(推荐使用cherry studio)
类型:标准输入输出(stdio)
命令:php
参数:/bdcms/modules/tdkmcp/library/mcp/server.php
(注意/bdcms为存放bdcms项目的绝对路径,按照实际情况替换)
环境变量:
TOKEN=xxxpasword
SITE_URL=http://xxx.com
在填写MCP服务时,需要配置以下环境变量:
SITE_URL
: 网站的基础 URL,用于MCP服务器调用网站信息,例如https://example.com
TOKEN
: API 访问令牌,用于身份验证(必须与代码中配置一致)
配置代码中的TOKEN
同时,须在代码中配置TOKEN,请设置/modules/tdkmcp/config.php
中的token字段,以用于鉴定调用者权限
两边都配置好即可开始与AI对话。
最佳实践
用户:查看CMS中的栏目信息AI: 我来帮您查看CMS中的栏目信息。我将使用获取CMS导航信息的工具来获取栏目数据。
根据CMS系统返回的数据,以下是当前的栏目信息:
xxxxx用户:查看新闻中心的文章列表
AI:我来帮您查看新闻中心的文章列表。根据刚才获取的栏目信息,新闻中心的栏目编码是"2",我将使用获取CMS内容信息的工具来获取该栏目的文章列表。
根据CMS系统返回的数据,以下是新闻中心栏目的文章列表:
xxxx用户:根据id=61的文章内容信息,生成tdk内容,然后修改这个文章的tdk后保存
AI:任务已完成!我已成功根据id=61的文章内容生成了TDK内容,并修改了文章的TDK信息。
MCP 工具列表
1. get_nav - 获取导航信息
获取 CMS 系统中的导航(栏目)信息,包括栏目名称、文章数量、链接等。
参数:
acode
(可选): 语言编码,默认为 'cn'
返回值:返回格式化的导航信息表格,包含以下列:
scode: 栏目编码
名称: 栏目名称
文章数: 该栏目下的文章数量
副标题: 栏目副标题
链接: 栏目链接
文件名: 栏目文件名
类型: 栏目类型(单页/列表)
状态: 栏目状态(启用/禁用)
排序: 栏目排序
创建时间: 栏目创建时间
更新时间: 栏目更新时间
使用示例:
用户:请返回给我CMS中所有的栏目信息
2. getnavcontent - 获取栏目内容列表
获取指定栏目下的内容列表,支持分页。
参数:
scode
(必填): 栏目编码acode
(可选): 语言编码,默认为 'cn'
返回值:返回格式化的内容列表表格,包含以下列:
ID: 文章ID
标题: 文章标题
副标题: 文章副标题
关键字: 文章关键字
描述: 文章描述
scode: 所属栏目编码
同时包含分页信息:
总记录数: 总文章数量
当前页: 当前页码/总页数
每页显示: 每页显示的文章数量
使用示例:
用户:查一下 xx 栏目下的文章列表
3. getcontentdetail - 获取文章详情
根据文章 ID 获取文章的详细信息。
参数:
id
(必需): 文章ID
返回值:返回文章的详细信息,包括所有字段信息,如标题、副标题、关键字、描述、作者、来源、访问量、点赞数、状态、排序、创建时间、更新时间等。
使用示例:
用户:查 id=111 的文章的信息
4. setcontenttdk - 设置文章TDK信息
根据文章 ID 更新文章的标题(Title)、描述(Description)和关键字(Keywords)等 SEO 相关信息。
参数:
id
(必需): 文章IDtitle
(可选): 文章标题,用于SEO优化和页面显示subtitle
(可选): 文章副标题,用于进一步描述文章内容keywords
(可选): 文章关键字,用于SEO优化,多个关键字用逗号分隔description
(可选): 文章描述,用于SEO优化和搜索结果摘要
返回值:返回操作结果的格式化字符串,包含更新后的数据信息。
API 接口
插件提供了以下 API 接口,供 MCP 工具调用:
1. 获取导航信息
接口地址: /api.php/tdkmcp.Data/get_nav
请求方法: GET
请求参数:
token
: API 访问令牌acode
: 语言编码,默认为 'cn'scode
: 栏目编码,可选
响应格式:
{
"code": 1,
"msg": "获取成功",
"data": [
{
"scode": "news",
"name": "新闻资讯",
"subname": "最新新闻",
"link": "/news/",
"filename": "news",
"type": "1",
"status": "1",
"sorting": "1",
"create_time": "2023-01-01 00:00:00",
"update_time": "2023-01-01 00:00:00",
"content_count": 10
}
]
}
2. 获取栏目内容列表
接口地址: /api.php/tdkmcp.Data/get_nav_content
请求方法: GET
请求参数:
token
: API 访问令牌acode
: 语言编码,默认为 'zh-cn'scode
: 栏目编码num
: 每页显示数量,默认为 10order
: 排序方式page
: 页码,默认为 1
响应格式:
{
"code": 1,
"msg": "获取成功",
"data": {
"data": [
{
"id": "1",
"title": "文章标题",
"subtitle": "文章副标题",
"keywords": "关键字",
"description": "描述",
"scode": "news"
}
],
"total": 100,
"current_page": 1,
"last_page": 10,
"per_page": 10
}
}
3. 获取文章详情
接口地址: /api.php/tdkmcp.Data/get_content_detail
请求方法: POST
请求参数:
token
: API 访问令牌id
: 文章ID
响应格式:
{
"code": 1,
"msg": "获取成功",
"data": {
"id": "1",
"title": "文章标题",
"subtitle": "文章副标题",
"keywords": "关键字",
"description": "描述",
"author": "作者",
"source": "来源",
"visits": "100",
"likes": "10",
"status": "1",
"sorting": "1",
"create_time": "2023-01-01 00:00:00",
"update_time": "2023-01-01 00:00:00"
}
}
4. 设置文章TDK信息
接口地址: /api.php/tdkmcp.Data/set_content_tdk
请求方法: POST
请求参数:
token
: API 访问令牌id
: 文章IDtitle
: 文章标题(可选)subtitle
: 文章副标题(可选)keywords
: 文章关键字(可选)description
: 文章描述(可选)
响应格式:
{
"code": 1,
"msg": "TDK设置成功",
"data": {
"id": "1",
"title": "新标题",
"subtitle": "新副标题",
"keywords": "新关键字",
"description": "新描述"
}
}
安全考虑
插件考虑了以下安全因素:
身份验证:使用 Token 进行身份验证,确保只有授权用户可以访问 API
使用建议
定期更新 Token:定期更换 API 访问令牌,提高安全性
备份数据:在进行批量操作前,建议先备份重要数据
常见问题
Q: 如何设置 API 访问令牌?
A: 访问令牌需要同时在代码中以及填写MCP服务器时设置
代码中:API 访问令牌在插件的配置文件中设置:/modules/tdkmcp/config.php
MCP客户端:配置MCP服务器时填写环境变量:
SITE_URL=https://xxx.com
TOKEN=xxxx # 必须与代码中设置一致
Q: 为什么设置 TDK 信息失败?
A: 请检查以下几点:
环境变是否配置
文章 ID 是否存在
Token 是否正确
输入参数是否符合要求(如长度限制)