Back to Browse

Website MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Japanese agriculture policy, subsidies and rice advance payments. 日本の農業政策・補助金・米の概算金

About

Japanese agriculture policy, subsidies and rice advance payments. 日本の農業政策・補助金・米の概算金

Remote endpoints: streamable-http: https://agri-ja.net/mcp

Security Report

4.2
Use Caution4.2High Risk

This Next.js agricultural media server has well-structured code with appropriate security controls. The MCP server endpoint is read-only and unauthenticated by design (suitable for public API). File operations are properly scoped to designated directories with path validation. Minor concerns include broad exception handling and some logging practices, but these do not introduce security vulnerabilities. Permissions align with the server's purpose as a static media site with optional CMS integration. Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 2 high severity).

4 files analyzed · 11 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

農業情報メディア(nogyo-media)

Next.js 15(App Router)+ TypeScript + Tailwind CSS v4 で構築した農業情報メディアの静的サイトです。記事本文は content/articles/*.md の frontmatter と HTML 本文で管理します。Git リモートは GitHub を想定しています(Vercel の Git 連携とも相性がよいです)。

メディア方針・未決バックログ・SEOメモdocs/メディア方針と実装メモ.md にまとめています(実装・運用時の参照用)。

はじめての公開まで(ほぼ自動)

ターミナルでこのフォルダに移動できる前提です。あなたが用意するのは 名前・メール・GitHub のトークン だけです(トークンは GitHub に一度も載せない でください)。

  1. 設定ファイルを作る(例にコピーして編集)

    cd nogyo-media
    cp setup.secrets.env.example setup.secrets.env
    

    setup.secrets.env を開き、GIT_USER_NAMEGIT_USER_EMAILGH_TOKEN を埋めます。

    • GH_TOKEN … GitHub → Settings → Developer settings → Personal access tokens で作成(リポジトリへの push ができる権限が必要です)。
    • トークンの代わりに GitHub CLIgh auth login 済みなら、GH_TOKEN を空にしても push できます。
  2. 初回の Git 設定・コミット・GitHub へ push を一括実行

    npm run setup:first-push
    
  3. (任意)Vercel をトークンだけで先に本番に出す
    setup.secrets.envVERCEL_TOKEN=...(Vercel → Account Settings → Tokens)を追加し:

    npm run setup:vercel
    
  4. push のたびに自動で本番更新したい場合(おすすめ)
    VercelNew Project → さきほどの GitHub リポジトリを Import(Root Directory は空のまま)。これで 2回目以降は git push だけでデプロイされます。

注意: setup.secrets.env.gitignore 済みです。絶対にコミット・共有しないでください。 漏れたらトークンはすぐ無効化し、作り直してください。

記事化開始→確認→WEB公開(標準フロー)

microCMS は使わず、ファイルベースのみで公開します。

0) 元PDFを置く

記事作成/記事化入力/ に元PDFを置きます。

1) チャット指示で記事化開始(またはコマンド)

チャットで「このPDFを記事化開始」と指示するか、nogyo-media で次を実行します。

npm run article:start -- "../記事化入力/<ファイル名>.pdf"

実行すると次が作られます。

  • 記事/元資料/記事と元資料/<ファイル名>/
  • 同フォルダ内に元PDFコピー
  • 同フォルダ内に <ファイル名>_解説記事.html(雛形)
  • 同フォルダ内に <ファイル名>_作業メモ.md

2) 記事を作成して確認する

記事/元資料/記事と元資料/<ファイル名>/<ファイル名>_解説記事.html を完成させ、内容を確認します。

補足:

  • ページ上部の タイトル / 日付 / タグ / 読了目安 / 目次 / 共有操作 はサイト側で共通表示されます。
  • HTML本文側では <article> 内に本文を記述し、<h1> や先頭 <header> は原則不要です(重複表示を避けるため)。
  • 記事生成時のルールは docs/記事生成プロンプト.md を必ず参照してください。
  • data:image / Base64画像 / SVGの data URI はそのまま公開しません。Google が読む HTML を極端に肥大化させるため、公開時には外部画像へ変換・軽量化します。

3) 確認OK後にWEB用ファイルを生成する

npm run article:stage -- "../記事/元資料/記事と元資料/<ファイル名>" <slug>

例:

npm run article:stage -- "../記事/元資料/記事と元資料/25_物流革新に向けた取組の推進" logistics-innovation-promotion

このコマンドで次を作成/更新します。

  • content/source-html/<slug>.html
  • content/articles/<slug>.mdsourceHtmlFile 参照型)

補足:

  • stage-article-for-web.sh は、HTML 内の data:image やローカル画像を public/article-images/<slug>/ に書き出し、HTML の src を公開用パスへ差し替えます。
  • CSS の url(data:...) は変換対象外のため、含まれている場合はエラーで停止します。
  • 図版そのものは禁止ではありません。禁止しているのは HTML への画像バイナリ埋め込みを、そのまま公開すること です。
  • 公開図版は PNG を既定とします(prepare-article-assets.py)。AVIF は環境によってデコードされず真っ白になることがあるため、public/article-images/**/*.avifsource-html 内の .avif 参照は npm run build 前の検証で失敗します。
  • PDF・公式スライドの図版は、スライド内の一部を切り抜かず、該当ページ(スライド)を1枚まるごと画像化して掲載します(1 PDF ページ=原則 1 画像)。再現用に scripts/render-pdf-page-to-png.py(要 pymupdf)があります。

4) 最後に公開する(手動)

npm run article:publish -- <slug>

publish-article.shcontent/articles/<slug>.md に加えて、sourceHtmlFile が指定されている場合は対応する content/source-html/*.html も一緒にコミットして push します。あわせて 記事一覧 CSVpublic/articles-index.csv)も再生成してコミットします。

記事一覧 CSV(タイトル・URL・公開日)

トップ・新着・カテゴリ・タグのハブページと、全公開記事を タイトル / URL / 公開日 の3列で出力します(ハブページの公開日列は空)。

項目内容
ファイルpublic/articles-index.csv
本番URLhttps://agri-ja.net/articles-index.csv
手動更新npm run articles:csv

自動更新のタイミング

  • npm run article:publish … 記事 push 時に CSV も同じコミットへ含める
  • npm run build … Vercel デプロイ前にも再生成(push 忘れがあっても本番 CSV は最新化)

記事の元データは content/articles/*.md の frontmatter(title / slug / publishedAt)です。記事 URL は /articles/<slug> 形式です。

ローカルでの起動

cd nogyo-media
npm install
npm run dev

ブラウザで http://localhost:3000 を開きます。

本番ビルド:

npm run build
npm start

Vercel へのデプロイ

  1. 本リポジトリを GitHub(または GitLab / Bitbucket)にプッシュします。
  2. Vercel にログインし、「New Project」で該当リポジトリをインポートします。
  3. Root Directory は、このリポジトリをそのままデプロイする場合は空のまま(または .)で問題ありません。親フォルダに複数プロジェクトがあるモノレポのときだけ nogyo-media などサブフォルダを指定します。
  4. フレームワークは Next.js と自動検出されます。そのままデプロイします。

環境変数は現状のファイルベース記事のみでは不要です。ドメインやプレビュー URL は Vercel のプロジェクト設定から追加できます。

初回/2回目以降の整理

タイミングあなたがすること自動で行われること
最初の1回上記「はじめての公開まで」どおり setup.secrets.env を用意し、npm run setup:first-push。自動デプロイ用に Vercel でリポジトリを Import(または npm run setup:vercel で CLI デプロイ)。setup:first-push がコミットと GitHub への反映まで実行。
2回目以降記事やコードを直して git push するだけ。Vercel が自動でビルド・本番反映(プルリクならプレビュー URL も自動)。GitHub Actions.github/workflows/ci.yml)が npm run lintnpm run build を実行し、失敗したら赤く表示される。
依存ライブラリ特に何もしなくてよい(任意で Dependabot の PR をレビューしてマージ)。Dependabot.github/dependabot.yml)が週1で更新案の PR を出す。

GitHub 上のリポジトリの Actions タブで、ワークフロー「CI」の成否を確認できます。Vercel のダッシュボードで各デプロイのログも見られます。

microCMSについて

現在の標準運用では microCMS を使いません
content/articlescontent/source-html のファイルベース運用で公開します。

microCMS を有効にする場合も、各記事の tags に読者タグを1〜3個含めないとビルドに失敗します。

MCP サーバー(AIエージェント向け公開エンドポイント)

https://agri-ja.net/mcp で、記事と公開データを MCP(Model Context Protocol) のツールとして提供しています。実体は app/mcp/route.ts の1ファイルだけです。

  • 読み取り専用・認証なし。MCP 2026-07-28(ステートレス)と 2025 系 Streamable HTTP の両方を同じURLで受けます。
  • ツールは4つ: search_articles / get_article / rice_advance_payment / find_subsidy
  • 記事本文は全文を返さず「要点+冒頭抜粋+URL」に留めます。AIの回答に出典URLが載り、読者がサイトに来られる状態を保つためです。
  • データ源は記事とサイト内ツールと同じ(content/)。記事を publish すればMCP側も自動で最新になります。
  • /mcp は実行時に content/ を読む唯一のルートなので、next.config.tsoutputFileTracingIncludes から外さないでください(外すと本番で ENOENT)。

利用のしかた(案内するとき): Claude / ChatGPT / Cursor の「カスタムコネクタ」に https://agri-ja.net/mcp を登録するだけです。所在は /llms.txt でも告知しています。

計測: MCP経由の利用は GA4 にも Search Console にも映りません。Vercel の Function Logs に出る [mcp] <method> <status> <ms> が唯一の計測点です。

公式レジストリ(registry.modelcontextprotocol.io)

net.agri-ja/agri-ja として登録済み(2026-08-07・status active)。名前空間は GitHub ではなく agri-ja.net のドメイン認証(HTTP方式) で取っています。

  • 公開鍵: public/mcp-registry-authnext.config.ts の rewrites で /.well-known/mcp-registry-auth として配信(Vercel は public/ 配下のドットディレクトリを配信しないためpublic/.well-known/ に直接置くと本番で404になります)
  • 秘密鍵: ~/.config/mcp-registry/agri-ja-key.pemagri-ja-privkey.hexリポジトリ外。コミットしない
  • CLI: ~/.local/bin/mcp-publisher

ツールを追加・変更したら server.jsonversion を上げて再公開します:

cd nogyo-media
~/.local/bin/mcp-publisher validate
~/.local/bin/mcp-publisher login http --domain agri-ja.net --private-key "$(cat ~/.config/mcp-registry/agri-ja-privkey.hex)"
~/.local/bin/mcp-publisher publish
curl -s "https://registry.modelcontextprotocol.io/v0.1/servers?search=agri-ja"

動作確認(ローカル):

curl -s -X POST http://localhost:3000/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

ディレクトリ概要

  • app/ — App Router のページ・レイアウト
  • components/ — ヘッダー・ヒーロー・カード・サイドバー
  • content/articles/ — 記事 Markdown(frontmatter + HTML 本文)
  • lib/articles.ts — 記事データ層
  • lib/categories.ts / lib/tags.ts — カテゴリ・読者タグ・テーマタグ正規語彙(THEME_TAG_REGISTRY

記事の tags には 読者タグ生産者向け / 小売向け / 流通向け / 消費者向け)を 必ず1〜3個 含めてください。テーマタグは docs/theme-tags.md の正規語彙から 0〜3個 付けます。未登録タグや読者タグ個数違反はビルド時にエラーになります。

新規記事のテーマタグ提案: python3 scripts/suggest-theme-tags.py <slug> <category>

ライセンス

プライベートプロジェクト用。コンテンツの著作権は各出典に従ってください。

Reviews

No reviews yet

Be the first to review this server!

Website MCP Server - Japanese agriculture policy, subsidies and rice advance | MCP Marketplace