mcpField
P
Proof of Type Input

Proof of Type Input

リモート
proofoftype.comセキュリティ02 週間前に更新
リポジトリ公式サイト

Proof of Type Input について

Proof of Type Inputは、人が入力したことを検証できるテキスト欄をサイトに追加します。コメントや記事を受け付けるサイトの開発者向けで、文字単位の入力とスマートフォンでの確認により署名付き証明を生成し、文章自体から推測しません。

主な機能

  1. 01検証可能な人間入力欄の埋め込み
  2. 02署名付き証明トークンの生成
  3. 03テキスト、サイトオリジン、トークンの検証
  4. 04JavaScriptとReactに対応
  5. 05オンラインとオフラインでの検証

活用シーン

  1. 01コメントフォームの人間入力を検証
  2. 02投稿記事やレビューの確認
  3. 03サーバー保存前の証明検証

MCP 対応

MCPサーバーは、フレームワーク別のクイックスタート、証明トークンの検証、トピック解説を提供し、コーディングエージェントによる実装を支援します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://www.proofoftype.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

3
パラメーター型必須説明
frameworkenumいいえデフォルト:htmlhtml | javascript | react | nextjs | express | python | wordpress | curl | offline

詳細

人間による入力の証明

人間が入力したことを証明するテキストボックスです。

スクリプトタグを1つ追加するだけで、サイトのコメント、投稿、レビュー、記事に、実際に人間が入力したことを証明する仕組みを組み込めます。Proof of Typeにサインインし、1文字ずつ入力し(貼り付けやAI生成テキストは不可)、スマートフォンでFace IDまたは指紋認証を使って確認します。サーバーにはテキストと署名済みの証明トークンが送られ、あなたや誰でも検証できます。

<script src="https://www.proofoftype.com/sdk/v1.js" async></script>

<form method="post" action="/comments">
  <div data-proofoftype data-name="comment" data-placeholder="Write a comment"></div>
  <button>Post</button>
</form>

フォームが送信されると、ユーザーがスマートフォンで確認し、その後サーバーに次の情報が届きます。

フィールド内容
comment入力されたとおりのテキスト
comment_proof証明トークン(EdDSA署名付きJWT)

AI コーディングエージェントで構築する(MCP)

サイトをバイブコーディングしていますか?Proof of Type MCP サーバーに接続して、エージェントに「人間が入力したことを証明するコメントボックスを作って」と依頼してください。

claude mcp add --transport http proofoftype https://www.proofoftype.com/mcp

その他のクライアント(Cursor、VS Code、…):

{ "mcpServers": { "proofoftype": { "url": "https://www.proofoftype.com/mcp" } } }

ツール:get_quickstart(framework)、verify_proof(token, text, origin)、explain(topic)。

その理由

AI生成テキストは今や無料で無尽蔵に作成でき、AI検出ツールは完成した文章から推測することしかできないため、どちらの方向にも誤判定します。Proof of Typeは推測しません。テキストがどのように作られたかを証明します。

  1. ユーザーは当社の入力欄にキーを1つずつ入力します。proofoftype.comのセキュアなフレーム内で動作するため、ホストページ、拡張機能、スクリプトでキー入力を偽装することはできません。
  2. 入力は当社のサーバーで時間計測され(即時入力や再生はできません)、人間らしい入力リズムが採点されます。
  3. ユーザーはProof of TypeアプリでFace IDまたは指紋認証を使い、正確なテキストをスマートフォンで承認します。スマートフォンのハードウェアがアプリを証明します(Apple App Attest、Android key attestation)。スクリプトではこの手順を実行できません。

貼り付けたテキストや生成されたテキストには、証明が付与されません。

サーバーで検証する

テキストを保存する前に、必ず証明を確認してください。有効で、テキストと一致し、あなたのサイトで作成された場合にのみ受け入れます。

const r = await fetch('https://www.proofoftype.com/api/v1/verify', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    token: req.body.comment_proof,
    text: req.body.comment,              // the exact text
    origin: 'https://your-site.com',     // your site
    max_age_seconds: 600,                // made in the last 10 minutes
  }),
}).then((res) => res.json());

if (!r.valid || !r.text_matches || !r.origin_matches || !r.fresh) {
  return res.status(400).send('Please type your comment in the box.');
}
// Use each proof once: store r.proof.id with the comment, refuse repeats
// (proof tokens are public — they're in proof links).
// r.proof.author: the Proof of Type username who typed it
// r.proof.link: a link pasted with the text, if any

ヘルパーを使う場合は、server.mjsをプロジェクトにコピーしてください(verifyProof({ token, text, origin }))。

または、APIを直接呼び出すこともできます(キーは不要です)。

curl -s https://www.proofoftype.com/api/v1/verify \
  -H 'Content-Type: application/json' \
  -d '{"token":"<comment_proof>","text":"<comment>","origin":"https://your-site.com"}'
{ "valid": true, "text_matches": true, "origin_matches": true,
  "proof": { "id": "pot_…", "author": "yogev", "origin": "https://your-site.com",
             "typed_at": "2026-10-11T18:20:31.000Z", "score": 87, "words": 6, "text_sha256": "…" } }
オフライン検証

証明トークンはEdDSA(Ed25519)で署名されたJWTです。公開鍵:https://www.proofoftype.com/.well-known/jwks.json

import { createRemoteJWKSet, jwtVerify } from 'jose';
import { createHash } from 'node:crypto';

const JWKS = createRemoteJWKSet(new URL('https://www.proofoftype.com/.well-known/jwks.json'));
const { payload } = await jwtVerify(token, JWKS, {
  issuer: 'https://www.proofoftype.com',
  audience: 'https://your-site.com',
});
if (payload.text_sha256 !== createHash('sha256').update(text, 'utf8').digest('hex')) throw new Error('Not the signed text');
クレーム内容
isshttps://www.proofoftype.com
sub証明ID(pot_…)
aud入力が行われたサイト
iat検証された時刻
typed_by"human"
authorProof of Typeのユーザー名
signed_on"ios"または"android"
text_sha256正確なUTF-8テキストのSHA-256(16進数)
score、wpm、words、chars人間らしさのスコア(0~100)、入力速度、長さ

JavaScript API

const input = ProofOfType.mount('#editor', {
  placeholder: 'Write your article…',
  maxWords: 2000,
  button: false,            // verify from your own button
});
input.on('change', ({ words }) => {});
const proof = await input.verify();   // { text, html, token, author, score, url, … }

オプション:name、placeholder、maxWords(10~3000)、theme(auto | light | dark)、button、buttonLabel、form、typewriter(入力アニメーションを表示。デフォルトはtrue)、typewriterColor(例:'#e11d48')、sound(デフォルトはtrue)、allowLinks(デフォルトはtrue:貼り付けたリンクを1つ証明に署名します。検証レスポンスからproof.linkとして読み取れます。falseにすると、すべての貼り付けをブロックします)。result.htmlは表示用の書式にすぎず、証明の対象ではありません。サニタイズするか、result.textを使用してください。同じオプションはdata-属性(data-max-words、data-button-label、…)でも指定できます。

イベント:ready、signin、change、verified、error、resize。要素上でもDOMイベント(proofoftype:verified)としてディスパッチされます。

React

react.jsxをプロジェクトにコピーしてください。SDKは自動的に読み込まれます。

import { HumanInput } from './react.jsx';

<HumanInput placeholder="Write a comment" onVerified={(r) => save(r.text, r.token)} />

TypeScriptの型定義:index.d.ts。

プライバシー

  • Proof of Type は、サイト上で入力されたテキストを保存しません。証明に署名されるのは、その SHA-256 のみです。
  • キーストロークは検証され、破棄されます。テキストがページに届くのは検証後で、届くのはページの実際のオリジンだけです。
  • サイトが取得するのは Proof of Type のユーザー名だけで、メールアドレスやアカウント情報は取得しません。
  • 各証明は一度だけ使用できます。入力セッション 1 回、電話での署名 1 回、証明 1 つです。

オープンソースの範囲

このリポジトリには、ブラウザー SDK、React コンポーネント、サーバーヘルパー、型、サンプル(MIT)が含まれます。検証処理(キーストロークの取得、入力タイムライン、電話での署名)は Proof of Type 上で実行され、ホストページから変更できません。これが証明に価値をもたらします。

FAQ

サイト上のコメントが AI ではなく人間によって書かれたと、どうすればわかりますか? この入力欄をテキストボックスとして使用し、サーバー上で証明を検証してください。サインインした人が入力欄にテキストを入力し、電話で承認した場合にのみ証明が生成されます。

これは AI 検出ツールですか? いいえ。テキストから推測するのではなく、入力、時間の計測、人による署名というプロセスを証明します。

ユーザーにアカウントは必要ですか? はい。無料の Proof of Type アカウントと Proof of Type アプリ(iPhone または Android)が必要です。サインインはポップアップ 1 回で済み、証明ごとに Face ID または指紋認証を 1 回行います。

貼り付けはできますか? リンクのみ貼り付けできます。入力した単語の自動修正は許可されますが、予測入力、スワイプ入力、音声入力は許可されません。

費用はいくらですか? 人間は無料です。

リンク

MIT © Proof of Type

コメント

MCP は初めてですか?

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

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