tinyprobe について
tinyprobe は、YAML で API エンドポイントとテストワークフローを記述するコマンドラインの API テストツールです。デスクトップアプリと VS Code 拡張も備え、MCP ツールでエージェントによるテストの確認、呼び出し、実行ができます。
主な機能
- 01YAML でエンドポイントとワークフローを記述
- 02API を調査・呼び出し、レスポンスを検証
- 03ワークフローを実行し JUnit レポートを作成
- 04デスクトップアプリと VS Code 拡張を提供
- 05エージェント向けガイドを内蔵
活用シーン
- 01ローカルで API のエンドポイントとレスポンスを検証
- 02CI でエンドツーエンドのワークフローを実行
- 03Postman コレクションをテストファイルに変換
MCP 対応
`tinyprobe mcp` は、guide、inspect、call、run ツールを備えた標準入出力の MCP サーバーを起動します。call と run はバックエンドにリクエストを送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/kikutano/tinyprobe:0.22.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/kikutano/tinyprobe:0.22.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
tinyprobe
インストール · アプリ · VS Code 拡張機能 · サンプルを試す · ワークフロー形式 · コーディングエージェント向けガイド · ロードマップ
Postman の料金にうんざりしていませんか? tinyprobe をお試しください。高速で軽量な tinyprobe では、お気に入りの AI が API のエンドポイントとエンドツーエンドテストを作成し、環境に対して実行します。テストフローを YAML ファイルに記述して、API が二度と壊れないようにしましょう。
Postman から移行しますか? コーディングエージェントがコレクションを変換し、変換できなかった内容をお知らせします:プロンプト 1 つ。
tinyprobe は、コマンドラインから API をテストするツールです。エンドポイントを一度 YAML に記述すれば、関数のようにエンドポイントを呼び出し、引数を渡してレスポンスを検証するワークフローを作成できます。tinyprobe は単一の Native AOT バイナリです。ランタイムのインストールは不要で、すぐに起動します。
インストール
Linux / macOS
curl -fsSL https://raw.githubusercontent.com/kikutano/tinyprobe/main/install.sh | sh
Windows(PowerShell)
irm https://raw.githubusercontent.com/kikutano/tinyprobe/main/install.ps1 | iex
または、Releases からお使いのプラットフォーム用のアーカイブ(win-x64、linux-x64、linux-arm64、Alpine 用の linux-musl-x64 と linux-musl-arm64、osx-arm64)をダウンロードし、tinyprobe を PATH に配置してください。
Docker
docker run --rm -v "$PWD:/work" ghcr.io/kikutano/tinyprobe:0.21.0 run tinyprobe/workflows -e tinyprobe/env.local.yaml
イメージは、Microsoft .NET の runtime-deps Alpine ベース上で動作する、リリース版の Alpine バイナリです。対象は linux/amd64 と linux/arm64 です。タグはバージョン(0.21.0)、マイナーバージョン(0.21)、および latest です。現在のフォルダーは /work としてマウントされます。コンテナー内の localhost はコンテナー自体を指します。Linux では、マシン上で実行中の API をテストするために --network host を追加してください。macOS と Windows では、ホストとして host.docker.internal を使用してください。--junit で書き出すレポートが自分の所有になるように、--user "$(id -u):$(id -g)" を追加してください。
動作を確認します。
tinyprobe --version
更新
tinyprobe update
お使いのプラットフォーム向けの最新リリースをダウンロードし、SHA-256 チェックサムを検証してから、バイナリをその場で置き換えます。tinyprobe update --check は、新しいバージョンがあるかどうかだけを通知します。インストールスクリプトを再実行しても更新できます。また、TINYPROBE_VERSION=0.10.0 を指定すると、特定のバージョンに固定できます。
アプリ
tinyprobe-app は、ターミナルも VS Code も使わない方向けの tinyprobe です。Windows、macOS、Linux 用の小さなダウンロードファイルひとつで、ブラウザー上で起動します。テストのフォルダーを開き、フォームから任意のリクエストを送信し、ワークフローを実行して、値がステップ間をどう渡されるかを示す図で確認できます。また、YAML の代わりにフォームを使ってエンドポイントやワークフローを編集できます。
同じ YAML ファイルを使い、同じ tinyprobe を実行するため、アプリで行ったことはターミナルや CI でもそのまま実行できます。リリースからダウンロードしてください。
VS Code 拡張機能
tinyprobe for VS Code は、エディターから同じファイルを実行します。
- 保存時に問題箇所に下線が引かれ、
tinyprobeの候補が表示されます。入力中は補完、ホバー、定義への移動が使えます。 - すべてのエンドポイントの上に ▶ Call が表示されます。引数を入力すると、レスポンスが表示されます。
- ▶ Run workflow と、Test Explorer 内のワークフローを利用できます。ステップごとに 1 件、
for_eachの項目ごとに 1 件のテストが実行されます。 - すべてのステップに Run to here が表示されます。ワークフローをそのステップまで実行し、レスポンスを表示します。
- 実行ビューに、各ステップのリクエストとレスポンスが表示されます。
- サイドバーには、再送信できる呼び出しの History と、選択中の env ファイルを編集できる Environment エディターがあります。シークレットは非表示です。
- Copilot やエディターのほかのチャットエージェント向けの tinyprobe ツールに加え、Generate Tests with AI と Migrate with AI を使うと、適切なプロンプトがエージェントに渡されます。
VS Code Marketplace からインストールしてください。Cursor、Windsurf、VSCodium の場合は Open VSX から、またはターミナルからインストールできます。
code --install-extension kikutano.tinyprobe-vscode
上記のとおり、tinyprobe をインストールする必要があります。
サンプルを試す
example/ は、無料のフェイク REST API である JSONPlaceholder をテストする、小規模で完全なプロジェクトです。起動するものも、ほかにインストールするものもありません。短いコメント付きのワークフローが 3 つあり、読み取り、書き込み、あらゆる種類のチェックを確認できます。
git clone https://github.com/kikutano/tinyprobe.git
cd tinyprobe/example
tinyprobe run workflows/01-read.yaml -e environment.yaml
または、VS Code で example フォルダーを開き、▶ Run workflow をクリックしてください。example/README.md を参照してください。
クイックスタート
hello.yaml:
name: Hello tinyprobe
base_url: https://jsonplaceholder.typicode.com
endpoints:
create_post:
method: POST
path: /posts
body:
title: ${title}
userId: 1
get_user:
path: /users/${id}
steps:
- name: Create a post
call: create_post
with:
title: hello
expect:
status: 201
body:
$.id: 101
$.title: hello
save:
postId: $.id # available as ${postId} in the next steps
- call: get_user
with:
id: 1
expect:
body:
$.email: [email protected]
$.address.city: { contains: Gwen }
duration: { lt: 2s }
実行します:
tinyprobe run hello.yaml
⚡ tinyprobe 0.21.0
workflow : Hello tinyprobe
file : hello.yaml
steps : 2
✓ Create a post POST 201 587.33ms /posts
✓ get_user id=1 GET 200 76.89ms /users/1
checks..............: 100.00% ✓ 6 ✗ 0
steps...............: 2/2 passed
http_reqs...........: 2 3/s
http_req_duration...: avg=332.11ms min=76.89ms med=332.11ms max=587.33ms p(90)=536.28ms p(95)=561.8ms
data_received.......: 559 B
data_sent...........: 28 B
workflow_duration...: 666.86ms
PASSED 2 steps
ステップが失敗すると、そのステップのすべてのチェックが実際の値とともに一覧表示され、後続のステップは実行されません。
✗ Wrong expectations GET 200 4.73ms /api/headers
✗ header X-Custom-Header == "something-else" actual "hello-world"
✓ $.message contains "headers"
✗ duration < 1ms actual 4.73ms
YAML に誤りがある場合は、リクエストを送信する前に、すべての問題とその場所が報告されます。
✗ The workflow is not valid (2 problems)
tests/users.yaml:12:5: unknown endpoint 'logn' (did you mean 'login'?)
tests/users.yaml:16:5: unknown key 'expcet' in a step (did you mean 'expect'?)
コーディングエージェントでテストを生成する
コーディングエージェント(Claude Code、Cursor、Copilot、Codex など)に、バックエンドのコード、Postman コレクション、または OpenAPI ドキュメントから tinyprobe ファイルを作成させることができます。docs/llm-guide.md を渡してください。フォーマット、間違えやすいルール、手順、完全な例が記載されています。その後、以下のプロンプトのいずれかを貼り付けます。
tinyprobe guide はインストール済みバイナリから同じガイドを表示するため、オフラインでも使用中のバージョンに常に一致します。エージェントがリンクを開けない場合は、ファイルをチャットに貼り付けてください。
リポジトリのルートで tinyprobe init を実行して始めます。ガイドの tinyprobe/ フォルダー(api/、workflows/、sequences/、環境ファイル)を作成し、認証情報を含む環境ファイルを .gitignore に追加します。また、すべてのコーディングエージェントに、テストに手を加える前に tinyprobe guide を実行するよう指示するセクションを AGENTS.md に追加します。既存のファイルを上書きすることはありません。
エージェントは自分の作業を確認できます。無効なファイルがある場合は、リクエストを送信する前に file:line:column の形式でエラーと修正案が表示されます。また、チェックに失敗すると実際の値が表示されます。
エージェントに tinyprobe ツールを提供する(MCP)
tinyprobe mcp は MCP サーバーです。エージェントは guide、inspect、call、run のツールを取得し、シェルを使わずに JSON 引数と JSON 結果で利用します。一度設定すれば完了です。
claude mcp add tinyprobe -- tinyprobe mcp # Claude Code (--scope project shares it in .mcp.json)
{ "servers": { "tinyprobe": { "type": "stdio", "command": "tinyprobe", "args": ["mcp"] } } }
これは VS Code 用の .vscode/mcp.json です。Cursor は .cursor/mcp.json の { "mcpServers": { "tinyprobe": { "command": "tinyprobe", "args": ["mcp"] } } } を、Codex は ~/.codex/config.toml の [mcp_servers.tinyprobe]、command = "tinyprobe"、args = ["mcp"] を読み込みます。call と run はバックエンドにリクエストを送信するため、エージェントが使用前に確認を求めることがあります。ツールとその結果については、docs/protocol.md を参照してください。
MCP Registry には io.github.kikutano/tinyprobe として、Docker イメージをパッケージに指定して登録されています。レジストリを読み取るクライアントは、そこから追加できます。
エージェント用パッケージ
agents/ には、エージェントに tinyprobe guide を参照させる、すぐに使える手順が用意されています。スキルと MCP サーバーを備えた Claude Code プラグイン、Cursor ルール、Copilot の指示、そして llms.txt です。Claude Code では、次のようにします。
/plugin install tinyprobe --marketplace kikutano/tinyprobe
バックエンドのコードから
Read https://raw.githubusercontent.com/kikutano/tinyprobe/main/docs/llm-guide.md (or run `tinyprobe guide`)
and follow it: look at this backend's routes, authentication and seed data, write the tinyprobe API
file and workflows in tinyprobe/, then run them with tinyprobe until they pass. Put credentials only in
tinyprobe/env.local.yaml and add it to .gitignore. Tell me which failures look like backend bugs.
Postman コレクションから
Postman でコレクション(Collection v2.1)と各環境をエクスポートし、たとえば postman/ など、ファイルをリポジトリに配置します。その後、次のようにします。
Read https://raw.githubusercontent.com/kikutano/tinyprobe/main/docs/llm-guide.md (or run `tinyprobe guide`)
and follow its section on migrating from Postman: convert the collection and the environments in postman/
to tinyprobe files in tinyprobe/, one folder at a time, and run each workflow until it passes. Put secrets
only in tinyprobe/env.local.yaml and add it to .gitignore. Write tinyprobe/MIGRATION.md with what you
converted, what you skipped and why, and tell me which failures look like backend bugs.
同じリクエストのバリエーション(「Login」、「Login - wrong password」)は、異なる引数で呼び出す 1 つのエンドポイントになります。また、スクリプトで保存された値は save になります。署名を計算するスクリプトや pm.sendRequest など、まだ対応するものがない機能は推測されません。エージェントはそれらを MIGRATION.md に一覧表示するため、テストでカバーされていない内容がわかります。同じプロンプトは Insomnia、Bruno、その他の API ツールからエクスポートしたファイルにも使えます。フォルダーとツールの名前を指定してください。
OpenAPI ドキュメントから
Read https://raw.githubusercontent.com/kikutano/tinyprobe/main/docs/llm-guide.md (or run `tinyprobe guide`)
and follow it, starting from the OpenAPI document openapi.yaml: write one tinyprobe endpoint per operation
and workflows that check the documented status codes and response fields, then run them against the
local backend until they pass. Take test values from the seed data, not from the examples in the
document. Put credentials only in tinyprobe/env.local.yaml and add it to .gitignore. Tell me where the
backend does not do what the document says.
使用方法
tinyprobe run <workflow.yaml | folder>... [options]
tinyprobe call <file.yaml> <endpoint> [--with name=value]... [options]
tinyprobe inspect <file.yaml> [--json [--source]]
tinyprobe init [folder] [--base-url <url>]
tinyprobe update [--check] [--force]
tinyprobe guide Print the guide for coding agents (LLMs) that write tinyprobe files.
tinyprobe mcp MCP server on stdin/stdout: the tools guide, inspect, call and run, for agents.
tinyprobe schema Print the JSON Schema of tinyprobe files, for editors.
tinyprobe --help
tinyprobe --version
'run' runs workflows. A folder is read recursively: every YAML file with a top-level
'steps' key is a workflow, other files are skipped. With several workflows, each one
starts from zero, a failing one does not stop the others, and a summary comes last.
'call' sends one request to an endpoint of an API or workflow file and prints the response.
'inspect' validates a file and lists its endpoints, variables and steps.
'init' creates the tinyprobe/ folder, the .gitignore lines and an AGENTS.md section for
coding agents, in the current folder or the one given. It never overwrites a file.
Options for 'run' and 'call':
-e, --env <file> Environment file (YAML) with initial variables, e.g. baseUrl, apiKey.
--var <name=value> Set a variable, over the environment file. Repeatable.
--with <name=value> ('call' only) An argument of the endpoint, like a step's 'with'. Repeatable.
--reporter <name> console (default) or ndjson: one JSON event per line, for tools.
--junit <file> ('run' only) Also write a JUnit XML report, for CI servers.
--to <step> ('run' only, one workflow) Run up to this step, included, and stop:
its number, as 'inspect' lists the steps, or its name.
-v, --verbose Print variables, requests and responses while running.
--no-color Disable colors (also honored: the NO_COLOR environment variable).
Values of --var and --with are typed like YAML: 42 is a number, true a boolean,
'"42"' a string, '[a, b]' a list.
Options for 'inspect':
--json Print JSON, for tools.
--source With --json, also the file as written and where its blocks are, for editors.
--no-color Disable colors.
Options for 'init':
--base-url <url> baseUrl of the env files (default: http://localhost:8080).
Options for 'update':
--check Only tell whether a newer version is available.
--force Reinstall the latest version, also over a development build.
-h, --help Show this help.
--version Show the version.
Exit codes ('run', 'call', 'inspect'):
0 all steps passed ('call': a response was received; 'inspect': the file is valid)
1 at least one step failed (several workflows: at least one workflow failed)
2 invalid arguments, file not found, invalid file, or a folder without workflows
ワークフローは、最初に失敗したステップで停止します。フォルダーまたは複数のファイルを指定すると、tinyprobe run は失敗したワークフローの後も実行を続け、すべてのワークフローの概要を最後に 1 つ表示します。終了コード 0 は、すべてのワークフローが成功したことを意味します。
tinyprobe run tinyprobe/workflows -e tinyprobe/env.local.yaml
フォルダーは再帰的に読み込まれ、その中ではワークフローのみが実行されます。API ファイルと環境ファイルはスキップされます。各ワークフローは初期状態から開始するため、あるワークフローで保存した値は次のワークフローでは参照できません。終了コードがあるため、tinyprobe は CI でも簡単に使用できます。出力先がターミナルではない場合(CI のログやパイプなど)、スピナーは無効になり、各ステップがそれぞれの行に表示されます。
CI で実行する
フォルダー全体を実行し、CI サーバーのテストタブに表示できる JUnit レポートを書き出します。各ステップがファイル名と行番号付きのテストとなり、失敗したステップにはリクエスト行と、実際の値を含むすべてのチェックが表示されます。CI サーバーに保存されるうえ、リクエストにはシークレットが含まれるため、レポートにはヘッダーも本文も含まれません。
このリポジトリのアクションを使った GitHub Actions の例:
- uses: actions/checkout@v4
- uses: kikutano/[email protected] # installs tinyprobe 0.21.0
with:
path: tinyprobe/workflows
env-file: tinyprobe/env.ci.yaml
vars: |
token=${{ secrets.API_TOKEN }}
同じリリースのバイナリをチェックサム検証付きでインストールし、フォルダーを実行して tinyprobe-report.xml を書き出し、ジョブページに概要を表示します。また、失敗した各ステップについて、ワークフローファイルの該当行にエラーとして表示し、実行画面とプルリクエストにも表示します。入力項目は path(ファイルまたはフォルダー)、env-file、vars(1 行につき name=value。ログには名前だけが表示されます)、version、junit、summary、annotations、およびランナー上の既存のバイナリを使うための tinyprobe-path です。Linux、macOS、Windows のランナーで実行できます。レポートを保持するには、actions/upload-artifact でアップロードしてください。
Docker イメージを使った GitLab CI の例:
api-tests:
image:
name: ghcr.io/kikutano/tinyprobe:0.21.0
entrypoint: [""] # GitLab runs the script in a shell, not through tinyprobe
script:
- tinyprobe run tinyprobe/workflows -e tinyprobe/env.ci.yaml --junit reports/tinyprobe.xml
artifacts:
when: always
reports:
junit: reports/tinyprobe.xml
同じイメージは、ジョブをコンテナー内で実行するあらゆる CI で使用できます(Bitbucket Pipelines、CircleCI、Woodpecker、Docker を使う Jenkins)。ジョブで独自のイメージが必要な場合は、代わりにバイナリをインストールします:curl -fsSL https://raw.githubusercontent.com/kikutano/tinyprobe/main/install.sh | TINYPROBE_VERSION=0.21.0 sh を実行し、その後 ~/.local/bin/tinyprobe を実行します。このスクリプトは Alpine 上では Alpine 用ビルドを選択します。
バージョン(アクションのタグ、イメージのタグ、または TINYPROBE_VERSION)を固定して、新しいリリースが、選択しないままパイプラインに反映されないようにしてください。認証情報は CI のシークレットに保管し、そこから env.ci.yaml を作成するか、--var で渡してください。
API を調べる
inspect はファイルで定義されている内容を一覧表示し、call はワークフローを作成せずに単一のリクエストを送信して、レスポンス全体を表示します:
tinyprobe inspect docs/example/api/testserver.yaml
tinyprobe call docs/example/api/testserver.yaml status --with code=404 -e docs/environment.yaml
call はどのステータスも受け付けるため、404 は失敗として報告されず、表示されます。引数はステップの with と同様に検証されます。必須パラメーターがない場合や、名前のスペルを間違えた場合はエラーになります。
トークンと、それより前のステップの ID が必要なフローのステップを確認するには、--to を指定して、そのステップまでワークフローを実行します。指定するのは、inspect がステップを一覧表示する際の番号、またはステップ名です。それより前のステップは再度実行されるため、実行間で状態は保持されません。それより後のステップは実行されず、件数にも含まれません。
tinyprobe run docs/example/workflows/users.yaml -e docs/environment.yaml --to 3 -v
tinyprobe run docs/example/workflows/users.yaml -e docs/environment.yaml --to "Only active users"
VS Code では、各ステップの上にある ▶ Run to here から同じ操作を行い、そのステップのレスポンスを表示できます。
他のツールから tinyprobe を使う
inspect --json と run --reporter ndjson(および call)は、エディター、CI ダッシュボード、ローカル UI などのプログラム向けに JSON を出力します。フォーマットはバージョン管理されており、docs/protocol.md に記載されています。
tinyprobe run docs/example/workflows/users.yaml -e docs/environment.yaml --var baseUrl=http://127.0.0.1:5122/ --reporter ndjson
ワークフロー形式
エンドポイントとテストは別々のファイルに記述するため、同じエンドポイントを多くのワークフローで使用できます。
# api/server.yaml: endpoints only, no expectations
base_url: ${baseUrl}
auth:
bearer:
Authorization: "Bearer ${token}"
service: # or basic: { username, password }
oauth2: # OAuth2 client credentials: the token is fetched and reused for you
token_url: ${baseUrl}oauth/token
client_id: ${clientId}
client_secret: ${clientSecret}
endpoints:
login:
method: POST
path: /api/login
params:
username: admin # default
password: # required
body:
username: ${username}
password: ${password}
get_user:
path: /api/users/${id}
auth: bearer
upload_avatar:
method: POST
path: /api/users/${id}/avatar
auth: bearer
params: { id:, avatar: }
multipart: # a file upload; form: sends an urlencoded form
description: Profile picture
avatar:
file: ${avatar}
# workflows/users.yaml: steps that call the endpoints
name: Users
import:
- ../api/server.yaml
- billing: ../api/billing.yaml # another service: its endpoints are billing.<name>
steps:
- call: login
with: { password: password }
save: { token: $.access_token }
- call: get_user
with: { id: 1 }
expect:
status: 200
headers:
Content-Type: { contains: json }
body:
$.email: [email protected]
$.orders: { gt: 0, lt: 100 } # several conditions on one value: all must pass
$.name: { eq: Gaetano, contains: Gae }
$.role: { in: [admin, owner] } # OR: one of these values
$.deletedAt: { any: [ null, { exists: false } ] } # OR: one of these conditions
- sleep: 500ms
| ステップ内の項目 | 説明 |
|---|---|
call / with | 呼び出すエンドポイントとその引数です。 |
use | ここで共通の一連のステップ(ログインなど)を実行します。たとえば、パラメーターを with で指定して use: ../sequences/log-in.yaml とします。 |
expect.status | 期待するステータスコード、またはリスト([200, 204])です。指定しない場合は、任意の 2xx を受け入れます。 |
expect.body | JSONPath でチェックします。通常の値は一致を意味します。演算子 eq、ne、gt、gte、lt、lte、exists、contains、matches(正規表現。例:{ matches: '^ORD-[0-9]+$' })、schema(JSON Schema ファイル、OpenAPI ドキュメントのスキーマ、またはその場で記述するスキーマ。例:$: { schema: openapi.yaml#/components/schemas/User })を使用できます。1 つの値に複数の演算子を組み合わせることができます。例:{ gt: 0, lt: 10 }。すべての条件を満たす必要があります。OR 条件には in: [a, b](いずれかの値)または any: [ { lt: 0 }, { gt: 100 } ](いずれかの条件)を使用します。 |
expect.headers | レスポンスヘッダーをチェックします。 |
expect.cookies | Cookie をチェックします。例:{ sid: { exists: true } }。各ワークフローはサーバーが設定した Cookie を保持し、次のリクエストとともに送信します。 |
expect.duration | レスポンス時間です。例:{ lt: 500ms }。 |
save | 次のステップで使用するレスポンス本文の値、または Cookie の値です。例:csrf: { cookie: XSRF-TOKEN }。 |
for_each | 項目ごとに呼び出しを繰り返します。{ arguments } のリスト、変数(${users})、CSV ファイルまたは JSON ファイルを指定します。各項目では、期待するステータスを status: ${status} のように設定できます。 |
until | ポーリング:条件を満たすまで呼び出しを繰り返します。例:until: { body: { $.status: Confirmed }, every: 1s, timeout: 30s }。 |
sleep | 一時停止します。例:sleep: 2s。 |
${name} は、ステップの引数、保存された値、環境ファイル(-e)、ワークフローの variables の順に値を読み取ります。$ で始まる名前は生成されます。${$uuid}、${$timestamp}、${$randomString}、${$now+2h}、${$today+1d} を使用できます。variables で定義すると、すべてのステップで同じ値を再利用できます。完全なリファレンスは docs/workflow-format.md を参照してください。
テストサーバーの例
docs/example/ は、形式のすべての機能を使用する完全なプロジェクトです。1 つのコマンドで起動できるテストサーバーを対象としており、CI で実行されます。API ファイルが 2 つ、ワークフローが 8 つあり、認証(Bearer、API キー、Basic、OAuth2)、CRUD、ネストされた JSON、AND/OR チェック、クエリー文字列、ヘッダー、ステータスコード、遅いレスポンス、フォームとファイルのアップロード、正規表現と JSON Schema のチェック、Cookie セッション、for_each を使ったケースの表、until によるポーリング、生成値、シーケンスと名前付きインポートを通じて共有されるログインを網羅しています。README では、ワークフローを 1 つずつ説明しています。何も起動せずにまず試すには、example/ からパブリック API を呼び出せます。
# terminal 1: the test server on http://localhost:5122 (only your machine reaches it)
docker run --rm -p 127.0.0.1:5122:5122 ghcr.io/kikutano/tinyprobe-testserver
# terminal 2: run a workflow, or all of them
tinyprobe run docs/example/workflows/users.yaml -e docs/environment.yaml
tinyprobe run docs/example/workflows -e docs/environment.yaml
Docker を使わない場合は、.NET SDK でソースから起動します:dotnet run --project tests/Tinyprobe.RealServer.Tests。サーバーを再起動せずに、ワークフローを何度でも実行できます。
ソースからビルド
.NET 10 SDK が必要です。Native AOT には、プラットフォームのツールチェーンも必要です。Windows では「Desktop development with C++」ワークロード、Linux では clang と zlib1g-dev、macOS では Xcode のコマンドラインツールが必要です。
git clone https://github.com/kikutano/tinyprobe.git
cd tinyprobe
dotnet test Tinyprobe.slnx
# run without installing
dotnet run --project src/Tinyprobe.Cli -- run docs/example/workflows/users.yaml -e docs/environment.yaml
# build the native binary (use your RID: win-x64, linux-x64, linux-arm64, osx-arm64)
dotnet publish src/Tinyprobe.Cli/Tinyprobe.Cli.csproj -c Release -r linux-x64 -o publish
ロードマップ
ROADMAP.md を参照してください。
ライセンス
MIT です。License.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。