mcpField
M
Mcp Webpage Timestamps

Mcp Webpage Timestamps

ローカル
github.com/Fabien-desablensブラウザ自動化168 週間前に更新

Mcp Webpage Timestamps について

Mcp Webpage Timestampsは、ウェブページの作成・更新・公開日時を抽出するMCPサーバーです。複数のメタデータ形式と信頼度を示し、スクレイピングやコンテンツ分析に利用できます。

主な機能

  1. 01作成・更新・公開日時の抽出
  2. 02HTML、ヘッダー、JSON-LD、SNSメタデータの解析
  3. 03ヒューリスティックによる日付検出
  4. 04信頼度と取得元の提示
  5. 05複数URLの一括処理

活用シーン

  1. 01スクレイピングしたページに日付を追加
  2. 02記事の公開・更新時期の分析
  3. 03複数URLにまたがる時系列パターンの確認

MCP 対応

MCP対応クライアントに、単一ページと複数ページの日時抽出ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Webページのタイムスタンプ

npm version License: MIT Node.js Version smithery badge

Webページの作成、変更、公開のタイムスタンプを抽出する、強力なModel Context Protocol (MCP) サーバーです。このツールは、ウェブスクレイピングとウェブコンテンツの時間的分析を目的として設計されています。

機能

  • 包括的なタイムスタンプ抽出:Webページから作成、変更、公開のタイムスタンプを抽出します
  • 複数のデータソース:HTMLメタタグ、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

単一のWebページからタイムスタンプを抽出します。

パラメーター:

  • url(string、必須):タイムスタンプを抽出するWebページのURL
  • config(object、任意):設定オプション

設定オプション:

  • timeout(number):リクエストのタイムアウト(ミリ秒単位、デフォルト:10000)
  • userAgent(string):リクエストに使用するユーザーエージェント文字列
  • followRedirects(boolean):HTTPリダイレクトを追跡するかどうか(デフォルト:true)
  • maxRedirects(number):追跡するリダイレクトの最大数(デフォルト:5)
  • enableHeuristics(boolean):ヒューリスティックによるタイムスタンプ検出を有効にするかどうか(デフォルト:true)

例:

{
  "name": "extract_timestamps",
  "arguments": {
    "url": "https://example.com/article",
    "config": {
      "timeout": 15000,
      "enableHeuristics": true
    }
  }
}
batch_extract_timestamps

複数のWebページからタイムスタンプを一括で抽出します。

パラメーター:

  • urls(array of strings、必須):タイムスタンプを抽出するURLの配列
  • config(object、任意):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メタタグ
  • 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. リポジトリをフォークします
  2. フォークしたリポジトリをクローンします: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. プルリクエストを送信します
コードスタイル
  • 既存のコードスタイルに従ってください
  • 新しいコードには TypeScript を使用してください
  • 新しい機能にはテストを追加してください
  • 必要に応じてドキュメントを更新してください

ライセンス

MIT ライセンスです。詳細については、LICENSE ファイルをご覧ください。

サポート

変更履歴

変更の詳細な履歴については、CHANGELOG.mdをご覧ください。

謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。