Kimi K3 + Scrapeless: モデルにライブウェブアクセスを提供する
Senior Web Scraping Engineer
TL;DR:
- Kimi K3はツール呼び出しについて理由を述べることができますが、モデルは自動的に新しいコピーのウェブを所有するわけではありません。 クライアントは検索、ページ抽出、またはブラウザツールを公開し、それらの結果をモデルに返さなければなりません。
- Scrapeless MCP Serverはライブウェブツールの境界を提供します。 1つのリモートMCP接続は、エージェントに型付きの検索、スクレイピング、およびクラウドブラウジングアクションを提供し、モデルプロセス内にブラウザインフラストラクチャを配置することなく動作します。
- OpenCodeは統合の両側をホストできます。 Kimi K3をモデルプロバイダーとして構成し、ScrapelessをリモートMCPサーバーとして構成し、次にモデルに調査を依頼する前にサーバーを確認します。
- 根拠のあるプロンプトには証拠契約が必要です。 サポートされていないナarrativeの回答を受け入れる代わりに、ソースURL、抽出されたフィールド、NULL値、および鮮度のタイムスタンプを要求します。
- 2つの資格情報は別々に保持されます。
MOONSHOT_API_KEYはモデルプロバイダーを認証し、SCRAPELESS_KEYはウェブツール層を認証します。 - 無料で開始できます。 新しいScrapelessアカウントには無料トライアルクレジットが含まれています — app.scrapeless.comでサインアップしてください。
はじめに:モデルとウェブツールは異なるコンポーネント
Kimi K3は計画し、理由を述べ、構造化されたツール呼び出しを生成することができます。ライブウェブへのアクセスはまだクライアントとツールサーバーを通じて行われます。
その分離は有用です。モデルは必要な証拠を決定し、MCPクライアントは型付きリクエストを検証し、Scrapelessは検索、抽出、またはブラウザ作業を行います; 結果は目に見えるソーストレイルと共にモデルに戻ります。モデルはブラウザ資格情報やネットワーク配管に直接アクセスする必要はありません。
このガイドはOpenCodeをMCP対応クライアントとして使用しています。これはプロジェクト設定でモデルプロバイダーとリモートMCPサーバーの両方を宣言できるためです。同じ境界はすべての標準準拠クライアントで機能します。
Kimi K3とScrapelessで構築できるもの
Kimi K3とScrapelessは、モデルが分析を所有し、ツール層が現在の観察を所有する場合に最も効果的に機能します。
- 研究要約。 トピックを検索し、関連ページを開き、主張と日付を抽出し、ソースリンク付きの要約を返します。
- 製品監視。 公開された製品および変更履歴ページを読み、可視フィールドを標準化し、レビューのための重要な違いをフラグします。
- 技術文書エージェント。 現在の参照ページを特定し、モデルメモリではなく取得されたコンテンツから回答します。
- 市場マップ。 公開された組織または製品を特定し、固定スキーマを抽出し、各レコードのURLを保存します。
- 証拠に敏感なRAG。 要求に応じてライブソースを抽出し、コンテンツが検索インデックスに入る前に出所を添付します。
- ブラウザ研究。 ページがJavaScriptレンダリングまたは複数段階のナビゲーションを必要とする場合にクラウドブラウザを使用します。
Scrapeless MCPローンチ記事はツール表面を説明しており、LangChain統合はフレームワーク管理エージェントの同じ境界を示しています。
なぜライブウェブアクセスが重要か
Kimi K3のトレーニングとコンテキストウィンドウはページを現在のものにするわけではありません。リリースノート、ポリシー、価格、または可用性フィールドは、モデルがトレーニングされた後や以前の会話が始まった後に変更される可能性があります。
公式のKimi K3リポジトリはモデルID kimi-k3、OpenAI互換のアクセス、ツール呼び出し、および保存された思考履歴を文書化しています。また、モデル/クライアント契約を明示化します:マルチターンツールワークフローは、APIによって返された完全なアシスタントメッセージを次のリクエストに戻す必要があります。
MCPは異なる問題を解決します。MCPライフサイクル仕様は、通常のツール操作の前に初期化と能力交渉を定義します。したがって、ツールの発見は最初の統合テストです - プロンプトではありません。
なぜScrapeless MCPサーバーか
Scrapeless MCP Serverは、MCP対応のエージェントに現在のウェブ作業のための1つの型付き境界を提供します:検索、直接ページ抽出、スクリーンショット、および永続的なクラウドブラウザアクション。
リモートエンドポイントはhttps://api.scrapeless.com/mcpで、x-api-tokenヘッダーを使用します。ローカルのstdioパッケージはscrapeless-mcp-serverです。どちらもブラウザとネットワークの実行をKimi K3のモデルプロセスの外に保ちます。
前提条件
- Node.js 20以上。
- MCP対応クライアント。このガイドではOpenCodeのプロジェクト構成を使用します。
- Kimi K3 APIアクセスおよび
MOONSHOT_API_KEY。 - Scrapelessアカウントおよび
SCRAPELESS_KEY。 - すべてのターゲットへのアクセス権および返された公開データを保存する権限。
ローカル検証環境にはサービスキーが含まれていませんでした。パッケージのインストール、構成の検証、およびクライアント構築が実行されました。認証されたモデル生成とMCPツールの発見は、ラベル付きの前提条件として残ります。
統合パッケージのインストール
検証ハーネスで使用される正確なMCPクライアントおよびローカルサーバーパッケージをインストールします:
bash
npm install \
@modelcontextprotocol/sdk@1.30.0 \
scrapeless-mcp-server@0.5.0
パッケージの境界はクライアントUIとは独立しています。OpenCodeはリモートサーバーを直接使用できます。SDKは低レベルの接続テストに役立ち、stdioパッケージはローカルトランスポートオプションを提供します。
OpenCodeでKimi K3とScrapelessを接続する
OpenCodeはopencode.jsonにプロジェクト構成を受け入れます。その プロバイダー構成 はOpenAI互換エンドポイントをサポートし、MCP構成はヘッダー付きのリモートStreamable HTTPサーバーを受け入れます。
注:次の構成を読み込むには、正しい
MOONSHOT_API_KEYおよびSCRAPELESS_KEY環境変数が必要です。JSONの形はローカルで検証されましたが、認証された接続は完了した実行として提示されませんでした。
json
{
"$schema": "https://opencode.ai/config.json",
"model": "moonshot/kimi-k3",
"providers": {
"moonshot": {
"name": "Moonshot AI",
"env": ["MOONSHOT_API_KEY"],
"package": "@opencode-ai/ai/providers/openai-compatible",
"settings": {
"baseURL": "https://api.moonshot.ai/v1"
},
"models": {
"kimi-k3": {
"name": "Kimi K3",
"modelID": "kimi-k3"
}
}
}
},
"mcp": {
"servers": {
"scrapeless": {
"type": "remote",
"url": "https://api.scrapeless.com/mcp",
"oauth": false,
"headers": {
"x-api-token": "{env:SCRAPELESS_KEY}"
}
}
}
}
}
OpenCodeの リモートMCPサーバースキーマ は絶対URLおよびヘッダーオブジェクトを使用します。環境の置換により、資格情報がリポジトリから除外されます。
Scrapelessでスクレイピングを開始する
Scrapelessでウェブスクレイピングと自動化のワークフローを強化しましょう!
今すぐサインアップして、$5の無料クレジットを獲得してみませんか — クレジットカードは必要ありません。今すぐScrapelessダッシュボードで無料クレジットを請求しましょう。

Kimi K3を促す前にツール境界を確認する
構成は稼働中の接続の証拠ではありません。適切なチェックは、MCPクライアントを初期化し、機能を交渉し、モデルが関与する前にツールをリストします。
注:このハンドシェイクには
SCRAPELESS_KEYが必要です。インストールされたSDKおよびクライアントコンストラクタはローカルで検証されましたが、認証されたlistTools()呼び出しはこの資格情報不要の環境での前提条件として残ります。
javascript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
new URL("https://api.scrapeless.com/mcp"),
{
requestInit: {
headers: { "x-api-token": process.env.SCRAPELESS_KEY },
},
},
);
const client = new Client({ name: "kimi-k3-web-check", version: "1.0.0" });
await client.connect(transport);
const { tools } = await client.listTools();
console.log(tools.map(({ name }) => name).sort());
await client.close();
鍵が欠如している場合、テストは失敗すべきです。有効な鍵で、戻された名前とスキーマを検査し、古い投稿からのハードコーディングされた仮定ではなく、確認します。
実際にこれを使用する方法:Kimi K3にプロンプトを送る
サーバーがクライアントに現れた後、証拠と出力の観点から作業を要求します—製品コマンドではなく。
貼り付け可能なプロンプト
| 目標 | プロンプト |
|---|---|
| 現在の技術概要 | “このトピックの現在の公開ドキュメントを調査してください。すべての行について、請求、証拠URL、ページタイトル、および観察された日付を返してください。” |
| 製品比較 | “各ページに表示されるフィールドのみを使用して、これらの公開製品ページを比較してください。欠落しているフィールドはnullとしてマークしてください。” |
| 変更チェック | “この変更ログと製品ページを読みます。APIユーザーに影響を与える変更を特定し、周囲の証拠を引用してください。” |
| ソース発見 | “まず一次資料を検索し、最も関連性の高いページを開き、それぞれのソースが権威ある理由を説明してください。” |
| 構造化抽出 | “提供されたJSONスキーマに表示される項目を抽出してください。各レコードの正式なURLを保持してください。” |
| ブラウザワークフロー | “ブラウザでページを開き、名前付きUI要素を待ってから、公開されたフィールドのみを抽出し、その後セッションを閉じます。” |
実際の例:調査と抽出
あなたは以下を入力します:
Moonshot AIの公開リポジトリから現在のKimi K3デプロイメントガイダンスを調査してください。サポートされているAPIモデルID、互換性のあるインターフェース、推奨推論エンジン、ソースURL、およびnullとして確認できないフィールドを返してください。現在のウェブツールを使用し、記憶から答えないでください。
エージェントの計画は引き続き可視化されます:
- Moonshot AIの第一者Kimi K3リポジトリを検索します。
- リポジトリページを開いてデプロイメントセクションを特定します。
- 要求されたフィールドのみを抽出します。
- ソースURLとページタイトルを保持します。
- ページに存在しない要求されたフィールドに対してはnullを返します。
出力契約はコンパクトです:
jsonc
// illustrative sample
{
"model_id": "kimi-k3",
"api_style": ["OpenAI-compatible", "Anthropic-compatible"],
"recommended_inference_engines": ["vLLM", "SGLang", "TokenSpeed"],
"source_url": "https://github.com/MoonshotAI/Kimi-K3",
"source_title": "MoonshotAI/Kimi-K3",
"unconfirmed": []
}
表示された値はファーストパーティのリポジトリから来ています。生産環境では、レビュアーがすべてのフィールドを追跡できるように、正規化されたレコードの隣に生のツール結果を保持してください。
信頼性のある出力を確保する
信頼性のあるエージェント出力は、狭いデータ契約から始まります。
- ソースクラスの名前を指定します。 必要な場合はファーストパーティのドキュメント、基準、または公的記録を要求します。
- フィールドを指定します。 固定スキーマは、欠落している証拠を置き換える説得力のある段落の排除を防ぎます。
- 標準的なURLを保持します。 ソースURLはレビュープロセスや後の変更検出を可能にします。
- nullを許可します。 欠落情報は、モデルが記憶から隙間を埋めるよりも良いです。
- 観察と推論を分離します。 抽出されたフィールドとモデルの解釈を異なるキーに保存します。
- 行動の承認を要求します。 研究は自動化できるが、出版、アウトリーチ、購入、アカウント変更には明示的な承認が必要です。
JSON-RPCはクライアントの下にMCPメッセージを運びます。JSON-RPC 2.0仕様は、リクエスト識別子とメソッド/パラメータ構造を定義し、呼び出しと結果をペアリングします。
制限事項と前提条件
Kimi K3とScrapelessはシステムの異なる部分を解決するため、障害は異なる境界で発生します。
| 境界 | 一般的な症状 | 正しい応答 |
|---|---|---|
| モデル認証 | プロバイダーが生成を拒否 | Moonshotアカウントと環境変数を確認 |
| MCP認証 | ツールの発見が無許可 | Scrapelessアカウントと x-api-token ヘッダーを確認 |
| クライアントスキーマ | サーバーが読み込まれない | OpenCodeの設定が現在のバージョンに対して有効であるかを検証 |
| ページアクセス | 公開コンテンツが欠落または制限されている | 停止し、アクセス制限を返す |
| 抽出 | フィールドが欠落 | nullを返し、証拠ページを保持 |
| 行動承認 | タスクが外部の状態を変える可能性がある | 権限のある者のために一時停止 |
モデルの推論内容をログやユーザー向けの出力に露出させないでください。プロバイダーが必要とする場合、API会話内の完全なアシスタントメッセージを保持しますが、最終的な回答、ツールの証拠、およびアプリケーションが必要とする運用メタデータのみを公開します。
結論: モデルをツールの境界に保つ
Kimi K3は、MCPクライアントがモデルを現在の観察に接続したときにのみ、ライブウェブエージェントになります。プロバイダーを確認し、MCP接続を初期化し、ツールの表面を検査し、厳密な証拠スキーマに対してプロンプトを提示します。
モデルは何を読み取り、どのように合成するかを決定できます。Scrapelessがウェブ実行を処理します。あなたのアプリケーションは、承認、ソースポリシー、レビュー、ストレージについての責任を持ち続けます。
Kimi K3にライブウェブアクセスを提供する準備はできていますか?
私たちのコミュニティに参加して、MCPクライアントのパターンと根拠のあるエージェントを構築している開発者と比較してください: Discord · Telegram。
app.scrapeless.comにサインアップして、モデル駆動の研究ループを追加する前にScrapeless MCPツールの境界を確認してください。
FAQ
Q: Kimi K3は自動的にライブウェブアクセスを持っていますか?
いいえ。Kimi K3は、現在のページを観察するためにクライアントとウェブツールを必要とします。Scrapeless MCPサーバーがそのツールの境界を提供します。
Q: Kimi K3はMCPツールを呼び出せますか?
はい。Kimi K3は構造化されたツール呼び出しをサポートしており、MCP対応クライアントが利用可能なサーバーツールをモデルのツール表面に変換します。
Q: このセットアップでOpenCodeを使用する理由は何ですか?
OpenCodeは、プロジェクト構成でOpenAI互換のモデルプロバイダーとリモートMCPサーバーの両方を宣言でき、統合の検査性を保ちます。
Q: どの認証情報がMCPヘッダーに含まれるべきですか?
SCRAPELESS_KEYはx-api-token MCPヘッダーに含まれるべきです。MOONSHOT_API_KEYはKimi K3モデルプロバイダーのみに使用されます。
Q: モデルキーなしでこの統合は実行できますか?
SCRAPELESS_KEYが利用可能な場合、MCPハンドシェイクおよび直接ツール呼び出しはモデルキーなしで実行できます。Kimi K3生成には依然としてMoonshot APIアクセスが必要です。
Q: Scrapelessキーなしでこの統合を実行できますか?
認証されたScrapelessツール呼び出しは、Scrapelessキーなしでは実行できません。パッケージのインストールや設定の検証はローカルで実行できます。
Q: エージェントは欠落したフィールドをどのように扱うべきですか?
エージェントはnullを返し、証拠URLを保持し、モデルメモリからフィールドを埋めることを避けなければなりません。
Q: このパターンを使用してアカウント変更を自動化するのは安全ですか?
明示的な承認の境界なしには行わないでください。状態変更アクションは無効にするか人間の承認を受け、ツール層はワークフローに付与されたアカウント範囲内でのみ使用してください。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



