瑞典文本电视MCP服务器
一种模型上下文协议(MCP)服务器,通过 网站 texttv.nu API
特性
- 获取单页:从特定的文本电视页面检索文本内容并更新时间戳
- 获取多个页面:一次从多个页面检索文本内容并更新时间戳
- 获取页面范围:从一系列连续页面中检索文本内容并更新时间戳
- 搜索页面:在100-700页之间搜索内容,并返回带有时间戳的匹配文本
- 30秒缓存:内存内缓存减少了API调用并改进了响应时间
安装
npm install快速参考
可用脚本
npm run build-构建TypeScript项目npm run start-启动生产服务器npm run dev-启动开发服务器npm run example-运行使用示例npm run test-cache-测试30秒缓存功能npm run test-error-handling-测试错误处理场景npm run test-page-100-测试特定页面检索npm run generate-cursor-config-生成游标配置npm run clean-清理构建文件
用法
发展
npm run dev生产
npm run build
npm start与Cursor集成
要将此MCP服务器与Cursor一起使用,您需要将其添加到Cursor配置中:
- 先构建项目:
npm run build- 快速设置(自动路径检测):
npm run generate-cursor-config这创建了一个 cursor-config-generated.json 使用正确路径的文件。
- 手动设置-添加到Cursor配置文件 (通常
~/.cursor/mcp_config.json或类似):
{
"mcpServers": {
"swedish-text-tv": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/your/swedish-text-tv-mcp",
"env": {
"NODE_ENV": "production"
}
}
}
}- 对于开发模式 (直接使用TypeScript):
{
"mcpServers": {
"swedish-text-tv": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "/path/to/your/swedish-text-tv-mcp",
"env": {
"NODE_ENV": "development"
}
}
}
}- 重新启动游标 加载新的MCP服务器配置。
配置后,您可以在Cursor中使用瑞典语文本电视工具:
- 询问特定的文本电视页面:“获取文本电视页面100”
- 搜索内容:“在文本电视中搜索'väder'”
- 获取多个页面:“获取文本电视页面100、377和330”
📋 有关详细的设置说明,请参阅 CURSOR_SETUP.md
MCP工具
服务器提供以下工具:
get_text_tv_page
从Swedish Text TV获取特定页面。
参数:
pageNumber(number):要检索的页码(100-999)
例子:
{
"pageNumber": 100
}响应格式:
Updated: 2024-01-15 14:30:25
[Page content text here...]get_text_tv_pages
从Swedish Text TV获取多个页面。
参数:
pageNumbers(array):要检索的页码数组
例子:
{
"pageNumbers": [100, 377, 330]
}get_text_tv_page_range
从Swedish Text TV获取一系列页面。
参数:
startPage(number):起始页码endPage(number):结束页码
例子:
{
"startPage": 100,
"endPage": 105
}search_text_tv
在瑞典语文本电视页面中搜索内容(自动搜索页面100-700)。
参数:
query(string):搜索查询
例子:
{
"query": "väder"
}热门文字电视页面
- 第100页:主要新闻(Löpsedeln)
- 第377页:体育成绩
- 第330页:股市结果(Resultatbörsen)
- 第551页:Stryktipset(瑞典足球池)
API配置
服务器使用以下默认配置:
- 基本URL:
https://texttv.nu/api - 应用程序ID:
swedish-text-tv-mcp - 包括纯文本内容:
true
技术细节
项目结构
src/
├── index.ts # Main MCP server implementation
├── api-client.ts # Text TV API client
├── types.ts # TypeScript type definitions
└── example.ts # Usage examples
scripts/
└── generate-cursor-config.js # Auto-generate Cursor configuration
dist/ # Compiled JavaScript files
cursor-config.json # Basic Cursor configuration
cursor-config-examples.json # Advanced configuration examples
cursor-config-generated.json # Auto-generated configuration (created by script)
CURSOR_SETUP.md # Detailed Cursor setup guide依赖项
@modelcontextprotocol/sdk:用于创建服务器的MCP SDK- 内置Node.js
fetch用于HTTP请求的API
响应格式
每个页面响应包括:
- 文本内容:从文本电视页面中清除纯文本
- 更新时间戳:页面上次更新的时间(Unix时间戳转换为本地时间)
缓存系统
- 30秒内存缓存:每个页面在第一次请求后缓存30秒
- 性能改进:API调用的缓存响应返回时间为~0ms,而不是约100-200ms
- 自动清理:过期的缓存条目将自动删除
- 每页缓存:每个页码都独立缓存
TypeScript配置
- 目标:ES2022
- 模块:ES2022
- 已启用严格类型检查
- 为获取API而包含的DOM类型
错误处理
服务器包括全面的错误处理:
页码验证
- 页码必须介于100和999之间
- 页码必须是整数
- 不存在的页面返回明确的错误消息
请求限制
- 搜索查询不能为空
API响应处理
- 优雅地处理HTML错误页面(当页面不存在时)
- 返回无效页面的信息性错误消息
- 当多页请求中的某些页面失败时,继续处理其他页面
网络和JSON错误
- 验证响应内容类型
- 处理格式错误的JSON响应
- 为网络故障提供清晰的错误消息
许可证
麻省理工学院
贡献
- 分叉存储库
- 创建功能分支
- 提交您的更改
- 推到分支
- 创建拉取请求
链接
- 网站 texttv.nu -瑞典语文本电视网站
- 模型上下文协议 -MCP规范
