关于 Mcp Webpage Timestamps
Mcp Webpage Timestamps 是用于提取网页创建、修改和发布时间的 MCP 服务,面向网页抓取与内容分析,并支持多种元数据来源和置信度标注。
主要功能
- 01提取创建、修改和发布日期
- 02解析 HTML、HTTP 头、JSON-LD 和社交媒体元数据
- 03通过启发式方法检测日期
- 04提供置信度和来源信息
- 05批量处理多个 URL
适用场景
- 01为抓取的网页记录补充日期
- 02分析文章的发布和更新时点
- 03检查一组 URL 的时间分布
MCP 相关
它向兼容 MCP 的客户端提供单页和批量网页时间戳提取工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Webpage Timestamps
这是一款功能强大的模型上下文协议(MCP)服务,可提取网页的创建、修改和发布时间戳。此工具专为网页抓取和网页内容的时间分析而设计。
功能特性
- 全面提取时间戳:从网页中提取创建、修改和发布时间戳
- 多个数据源:支持 HTML meta 标签、HTTP 标头、JSON-LD、微数据、OpenGraph、Twitter 卡片和启发式分析
- 置信度评分:为提取的时间戳提供置信度等级(高/中/低)
- 批量处理:同时从多个 URL 提取时间戳
- 可配置:可自定义超时、用户代理、重定向处理和启发式选项
- 适用于生产环境:具备稳健的错误处理、全面的日志记录和 TypeScript 支持
安装
快速安装
npm install -g mcp-webpage-timestamps
使用 npx
npx mcp-webpage-timestamps
通过 Smithery 安装
通过 Smithery 为 Claude Desktop 自动安装 mcp-webpage-timestamps:
npx -y @smithery/cli install @Fabien-desablens/mcp-webpage-timestamps --client claude
前置要求
- Node.js 18.0.0 或更高版本
- npm 或 yarn
开发环境安装
git clone https://github.com/Fabien-desablens/mcp-webpage-timestamps.git
cd mcp-webpage-timestamps
npm install
npm run build
使用方法
作为 MCP 服务
此服务可与任何兼容 MCP 的客户端搭配使用。以下是配置方法:
Claude Desktop 配置
添加到你的 claude_desktop_config.json:
{
"mcpServers": {
"webpage-timestamps": {
"command": "npx",
"args": ["mcp-webpage-timestamps"],
"env": {}
}
}
}
Cline 配置
添加到你的 MCP 设置中:
{
"mcpServers": {
"webpage-timestamps": {
"command": "npx",
"args": ["mcp-webpage-timestamps"]
}
}
}
直接使用
# Start the server
npm start
# Or run in development mode
npm run dev
API 参考
工具
extract_timestamps
从单个网页提取时间戳。
参数:
url(字符串,必填):要提取时间戳的网页 URLconfig(对象,可选):配置选项
配置选项:
timeout(数字):请求超时时间,单位为毫秒(默认值:10000)userAgent(字符串):请求使用的用户代理字符串followRedirects(布尔值):是否跟随 HTTP 重定向(默认值:true)maxRedirects(数字):要跟随的最大重定向次数(默认值:5)enableHeuristics(布尔值):是否启用启发式时间戳检测(默认值:true)
示例:
{
"name": "extract_timestamps",
"arguments": {
"url": "https://example.com/article",
"config": {
"timeout": 15000,
"enableHeuristics": true
}
}
}
batch_extract_timestamps
批量从多个网页提取时间戳。
参数:
urls(字符串数组,必填):要提取时间戳的 URL 数组config(对象,可选):与extract_timestamps相同的配置选项
示例:
{
"name": "batch_extract_timestamps",
"arguments": {
"urls": [
"https://example.com/article1",
"https://example.com/article2",
"https://example.com/article3"
],
"config": {
"timeout": 10000
}
}
}
响应格式
这两个工具都会返回具有以下结构的 JSON 对象:
{
url: string;
createdAt?: Date;
modifiedAt?: Date;
publishedAt?: Date;
sources: TimestampSource[];
confidence: 'high' | 'medium' | 'low';
errors?: string[];
}
TimestampSource:
{
type: 'html-meta' | 'http-header' | 'json-ld' | 'microdata' | 'opengraph' | 'twitter' | 'heuristic';
field: string;
value: string;
confidence: 'high' | 'medium' | 'low';
}
支持的时间戳来源
HTML Meta 标签
article:published_timearticle:modified_timedatepubdatepublishdatelast-modifieddc.date.createddc.date.modifieddcterms.createddcterms.modified
HTTP 标头
Last-ModifiedDate
JSON-LD 结构化数据
datePublisheddateModifieddateCreated
微数据
datePublisheddateModified
OpenGraph
og:article:published_timeog:article:modified_timeog:updated_time
Twitter 卡片
twitter:data1(包含日期信息时)
启发式分析
- 带有
datetime属性的时间元素 - 文本中的常见日期格式
- 与日期相关的 CSS 类
开发
脚本
# Development with hot reload
npm run dev
# Build the project
npm run build
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
测试
该项目包含全面的测试:
# Run all tests
npm test
# Run tests with coverage
npm test -- --coverage
# Run specific test file
npm test -- extractor.test.ts
代码质量
- TypeScript:全面支持 TypeScript,并启用严格类型检查
- ESLint:使用推荐规则进行代码检查
- Prettier:代码格式化
- Jest:单元测试和集成测试
- 95%+ 测试覆盖率:全面的测试套件
示例
基本用法
import { TimestampExtractor } from './src/extractor.js';
const extractor = new TimestampExtractor();
const result = await extractor.extractTimestamps('https://example.com/article');
console.log('Published:', result.publishedAt);
console.log('Modified:', result.modifiedAt);
console.log('Confidence:', result.confidence);
console.log('Sources:', result.sources.length);
自定义配置
const extractor = new TimestampExtractor({
timeout: 15000,
userAgent: 'MyBot/1.0',
enableHeuristics: false,
maxRedirects: 3
});
const result = await extractor.extractTimestamps('https://example.com');
批量处理
const urls = [
'https://example.com/article1',
'https://example.com/article2',
'https://example.com/article3'
];
const results = await Promise.all(
urls.map(url => extractor.extractTimestamps(url))
);
使用场景
- 内容分析:分析网页内容的时间特征
- 网页抓取:从抓取的页面中提取时间元数据
- SEO 分析:分析发布和修改模式
- 研究:研究网页内容的时间特征
- 内容管理:跟踪内容生命周期和更新
错误处理
提取器能够妥善处理各种错误情况:
- 网络错误:超时、连接被拒绝、DNS 解析失败
- HTTP 错误:404、500 和其他 HTTP 状态码
- 解析错误:无效 HTML、格式错误的 JSON-LD、无法解析的日期
- 配置错误:无效 URL、超时值等
所有错误都会记录在响应的 errors 数组中,便于稳健地处理错误和进行调试。
贡献
欢迎贡献!详情请参阅我们的贡献指南。
开发环境设置
- Fork 此仓库
- 克隆你的 Fork:
git clone https://github.com/Fabien-desablens/mcp-webpage-timestamps.git - 安装依赖:
npm install - 创建分支:
git checkout -b feature/your-feature - 进行修改
- 运行测试:
npm test - 提交修改:
git commit -m 'Add some feature' - 推送到分支:
git push origin feature/your-feature - 提交 Pull Request
代码风格
- 遵循现有代码风格
- 所有新代码均使用 TypeScript
- 为新功能添加测试
- 根据需要更新文档
许可证
MIT 许可证——详情请参阅 LICENSE 文件。
支持
- 问题:GitHub Issues
- 讨论:GitHub Discussions
- 文档:Wiki
更新日志
详细的更改历史请参阅 CHANGELOG.md。
致谢
- 感谢 Model Context Protocol 提供出色的 MCP 框架
- 感谢 Cheerio 提供 HTML 解析功能
- 感谢 Axios 提供 HTTP 请求功能
- 感谢 date-fns 提供日期解析和处理功能
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。