关于 @jser/mcp
@jser/mcp 是 JSer.info 的 MCP 服务,让 AI 客户端可以检索 JSer 的收录条目、投稿、周刊信息。适合需要查询 JS 相关资讯的开发者,可通过远程服务或本地进程接入。
主要功能
- 01检索收录条目与投稿
- 02按 URL 获取产品名称与版本信息
- 03按编号或日期范围查询 JSer 周刊
- 04按 URL 查找所在周刊或条目
适用场景
- 01在 VSCode 中通过 MCP 查询 JSer 收录的工具与文章
- 02查找某个产品的发布说明及版本信息
- 03按日期范围汇总一段时间内的 JSer 周刊内容
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 jser_search_items、jser_search_posts 等 8 个工具。可通过远程服务 https://mcp.jser.info/mcp 或本地 npx 启动后接入。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
@jser/mcp
JSer.info 的 MCP 服务
- 介绍 - Model Context Protocol
- modelcontextprotocol/typescript-sdk:Model Context Protocol 服务端和客户端的官方 TypeScript SDK
使用方法
在 VSCode 中使用
在 VSCode 中,可以通过以下任一方式使用 JSer.info MCP:
使用远程服务(推荐)
可以通过以下任一方式添加远程服务:
方法 1:从命令行添加
code --add-mcp '{"name":"jser-info-mcp","url":"https://mcp.jser.info/mcp"}'
方法 2:添加到 settings.json
在 VSCode 的 settings.json 中添加以下设置:
"mcp": {
"servers": {
"jser-info-mcp": {
"url": "https://mcp.jser.info/mcp"
}
}
}
这样即可自动使用 JSer.info MCP。
使用本地服务
-
在终端中启动 @jser/mcp
npx @jser/mcp -
打开 VSCode 的命令面板(
Cmd+Shift+P或Ctrl+Shift+P),运行「MCP: Add Server...」 -
在服务 URL 中输入
http://localhost:14561/mcp并连接
可用功能
连接后,可以使用以下工具:
jser_search_items:按标题、说明、URL、标签搜索条目(支持多个关键词的 OR 搜索)jser_search_posts:按标题、说明、URL、标签搜索帖子jser_product_name:根据 URL 获取产品名称jser_week:根据编号获取 JSer 周jser_weeks:获取所有 JSer 周jser_weeks_between:获取两个日期之间的 JSer 周jser_week_with_item_url:获取包含指定条目的 JSer 周jser_item_with_item_url:根据 URL 获取 JSer 条目
可用工具
JSer.info MCP 提供以下工具。
jser_search_items
按标题、说明、URL、标签搜索条目。多个以空格分隔的关键词将进行 OR 搜索。
参数:
query:搜索查询(1-100 个字符)。多个以空格分隔的关键词将进行 OR 搜索limit:返回结果的最大数量(1-100,默认值:10)offset:结果偏移量(大于等于 0,默认值:0)order:排序顺序desc:从新到旧(默认)asc:从旧到新
返回值:
- 条目数组
title:条目标题url:条目 URLcontent:条目说明tags:标签数组date:登记日期relatedLinks:相关链接数组
jser_search_posts
按标题、说明、URL、标签搜索帖子。
参数:
query:搜索查询(1-100 个字符)limit:返回结果的最大数量(1-100,默认值:10)offset:结果偏移量(大于等于 0,默认值:0)sort:排序方式relevance:按相关度排序(默认)date:按日期排序
order:排序顺序desc:从新到旧/相关度从高到低(默认)asc:从旧到新/相关度从低到高
返回值:
- 帖子数组
title:帖子标题url:帖子 URLcontent:帖子内容tags:标签数组date:发布日期
jser_product_name
根据 URL 获取产品名称。
参数:
url:产品 URL(必填)
返回值:
- 产品信息对象
name:产品名称url:产品 URLreleaseNoteProbability:属于发行说明的概率releaseNoteVersion:发行说明的版本信息(如适用)releaseNoteURL:发行说明的 URL(如适用)
jser_week
根据编号获取 JSer 周。
参数:
number:JSer 周编号(必填)
返回值:
- JSer 周对象
number:JSer 周编号startDate:开始日期endDate:结束日期items:该周的条目列表posts:该周的帖子列表
jser_weeks
获取所有 JSer 周。
返回值:
- JSer 周对象数组
number:JSer 周编号startDate:开始日期endDate:结束日期items:该周的条目列表posts:该周的帖子列表
jser_weeks_between
获取指定时间段内的 JSer 周。
参数:
beginDate:时间段的开始日期(必填)endDate:时间段的结束日期(必填)
返回值:
- JSer 周对象数组
number:JSer 周编号startDate:开始日期endDate:结束日期items:该周的条目列表posts:该周的帖子列表itemsCount:条目数量postsCount:帖子数量
jser_week_with_item_url
获取包含指定 URL 条目的 JSer 周。
参数:
item_url:条目 URL(必填)
返回值:
- JSer 周对象
number:JSer 周编号startDate:开始日期endDate:结束日期items:该周的条目列表posts:该周的帖子列表
jser_item_with_item_url
获取指定 URL 的条目。
参数:
url:条目 URL(必填)
返回值:
- 条目对象
title:标题url:URLdescription:说明tags:标签数组date:日期relatedLinks:相关链接数组
源码
数据获取使用 @jser/data-fetcher
- 自上次执行经过 1 分钟后会重新获取数据
- 也就是说,1 分钟内会使用缓存数据
搜索使用 DataSet
Item: 紹介するサイトのこと
1 Item = 1 サイト
すべてのデータのoriginとなるものです
サイトごとにタイトル、URL、登録した日付、タグなどが含まれています
API: https://jser.info/source-data/items.json
Post: JSer.infoに投稿される記事のこと
1 Post = 1 記事
それぞれの記事のタイトル、URL、タグ、日付などが含まれます
@jser/statを使うことでItemとPostを元に指定したサイトが紹介された記事を検索できます
API: https://jser.info/posts.json
Post Item: JSer.infoに投稿された記事中のItem(サイト)のこと
1 Post Item = 1 サイト
基本的にはItemと同じだが、Post ItemはPost(記事)におけるカテゴリ(ヘッドラインなど)が含まれます
カテゴリの種類は @jser/post-parser を参照してください
Itemを元に投稿時に編集している場合などもあるため、ItemとPost Itemは必ずしも一致するわけではありません
制限: カテゴリ区別が付けられたのは2014-08-03からであるため、それ以前のデータは含まれない
Postにはすべての記事は含まれるがPost Itemのデータは含まれていない
API: https://jser.info/public/data/post-details.json
搜索产品名称使用 JSer.info Product Name API
$ curl "https://jser-product-name.deno.dev/?url=https://deno.com/blog/v1.19"
{"name":"Deno","url":"https://deno.com","releaseNoteProbability":0.7619047619047619,"releaseNoteVersion":"v1.19"}
$ curl "https://jser-product-name.deno.dev/?url=https://example.com"
null # status code is 400
数据提取逻辑使用 @jser/stat。
### findItemsBetween(beginDate, endDate): JSerItem[]
return JSerItems between two dates
### getJSerWeeks(): JSerWeek[]
return all JSerWeeks
### findJSerWeeksBetween(beginDate, endDate): JSerWeek[]
return JSerWeeks between two dates
### findJSerWeek(number): JSerWeek
number start with 1.
return JSerWeek at the number.
### findWeekWithItem(itemObject): JSerWeek
return JSerWeek contain the itemObject.
### findItemWithURL(URL): JSerItem
return JSerItem match the `URL`.
更新日志
请参阅 Releases 页面。
运行测试
安装 devDependencies 并运行 pnpm test:
pnpm test
贡献
欢迎提交拉取请求和点亮星标。
如有错误或功能请求,请创建一个议题。
- Fork 项目!
- 创建功能分支:
git checkout -b my-new-feature - 提交更改:
git commit -am 'Add some feature' - 推送到分支:
git push origin my-new-feature - 提交拉取请求 :D
作者
许可证
MIT © azu
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。