mcpField
M
Mcp Webpage Timestamps

Mcp Webpage Timestamps

本地服务
github.com/Fabien-desablens浏览器自动化168 周前更新

关于 Mcp Webpage Timestamps

Mcp Webpage Timestamps 是用于提取网页创建、修改和发布时间的 MCP 服务,面向网页抓取与内容分析,并支持多种元数据来源和置信度标注。

主要功能

  1. 01提取创建、修改和发布日期
  2. 02解析 HTML、HTTP 头、JSON-LD 和社交媒体元数据
  3. 03通过启发式方法检测日期
  4. 04提供置信度和来源信息
  5. 05批量处理多个 URL

适用场景

  1. 01为抓取的网页记录补充日期
  2. 02分析文章的发布和更新时点
  3. 03检查一组 URL 的时间分布

MCP 相关

它向兼容 MCP 的客户端提供单页和批量网页时间戳提取工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Webpage Timestamps

npm version License: MIT Node.js Version smithery badge

这是一款功能强大的模型上下文协议(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(字符串,必填):要提取时间戳的网页 URL
  • config(对象,可选):配置选项

配置选项:

  • 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_time
  • article:modified_time
  • date
  • pubdate
  • publishdate
  • last-modified
  • dc.date.created
  • dc.date.modified
  • dcterms.created
  • dcterms.modified
HTTP 标头
  • Last-Modified
  • Date
JSON-LD 结构化数据
  • datePublished
  • dateModified
  • dateCreated
微数据
  • datePublished
  • dateModified
OpenGraph
  • og:article:published_time
  • og:article:modified_time
  • og: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 数组中,便于稳健地处理错误和进行调试。

贡献

欢迎贡献!详情请参阅我们的贡献指南。

开发环境设置
  1. Fork 此仓库
  2. 克隆你的 Fork:git clone https://github.com/Fabien-desablens/mcp-webpage-timestamps.git
  3. 安装依赖:npm install
  4. 创建分支:git checkout -b feature/your-feature
  5. 进行修改
  6. 运行测试:npm test
  7. 提交修改:git commit -m 'Add some feature'
  8. 推送到分支:git push origin feature/your-feature
  9. 提交 Pull Request
代码风格
  • 遵循现有代码风格
  • 所有新代码均使用 TypeScript
  • 为新功能添加测试
  • 根据需要更新文档

许可证

MIT 许可证——详情请参阅 LICENSE 文件。

支持

更新日志

详细的更改历史请参阅 CHANGELOG.md。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。