Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Simuluje odpovědi pro aplikace založené na STDIO, jako jsou servery MCP (Model Context Protocol).
Definice instance modulu plug-in
{
"name": "MockStdioResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mockStdioResponsePlugin"
}
Příklad konfigurace
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/rc.schema.json",
"plugins": [
{
"name": "MockStdioResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mockStdioResponsePlugin"
}
],
"mockStdioResponsePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocksFile": "stdio-mocks.json"
}
}
Vlastnosti konfigurace
| Vlastnictví | Description | Výchozí |
|---|---|---|
mocksFile |
Cesta k souboru obsahujícímu odpovědi napodobení STDIO | stdio-mocks.json |
blockUnmockedRequests |
Pokud truezabrání nedosahujícímu stdinu do podřízeného procesu. |
false |
Možnosti příkazového řádku
| Název | Description | Výchozí |
|---|---|---|
--no-stdio-mocks |
Zákaz načítání napodobených odpovědí STDIO | false |
--stdio-mocks-file |
Cesta k souboru obsahujícímu odpovědi napodobení STDIO | - |
Příklady souborů Napodobení
Následují příklady objektů napodobení STDIO.
Reakce pomocí stdoutu
Odpovězte na stdin obsahující konkrétní text s odpovědí stdout.
Soubor: stdio-mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocks": [
{
"request": {
"bodyFragment": "tools/list"
},
"response": {
"stdout": "{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"tools\":[]}}\n"
}
}
]
}
Reakce pomocí stderru
Odpovězte na stdin chybovou zprávou na stderru.
Soubor: stdio-mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocks": [
{
"request": {
"bodyFragment": "invalid_method"
},
"response": {
"stderr": "Error: Unknown method\n"
}
}
]
}
Použití zástupných symbolů z stdin
Pomocí @stdin.body.* zástupných symbolů můžete do odpovědi dynamicky zahrnout hodnoty ze stdinu.
Soubor: stdio-mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocks": [
{
"request": {
"bodyFragment": "tools/list"
},
"response": {
"stdout": "{\"jsonrpc\":\"2.0\",\"id\":@stdin.body.id,\"result\":{\"tools\":[]}}\n"
}
}
]
}
K dispozici jsou následující zástupné symboly:
| Placeholder | Description |
|---|---|
@stdin.body.id |
ID požadavku JSON-RPC |
@stdin.body.method |
název metody JSON-RPC |
@stdin.body.params.name |
Přístup k vnořené vlastnosti |
Načtení odpovědi ze souboru
Načtěte obsah napodobení odpovědi z externího souboru pomocí @filename syntaxe.
Soubor: stdio-mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocks": [
{
"request": {
"bodyFragment": "initialize"
},
"response": {
"stdout": "@initialize-response.json"
}
}
]
}
Soubor: initialize-response.json
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"serverInfo":{"name":"Mock MCP Server","version":"1.0.0"}}}
Reakce na n-tý výskyt
Odpovězte pouze po zachycení odpovídajícího intervalu stdin pro nth time.
Soubor: stdio-mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
"mocks": [
{
"request": {
"bodyFragment": "tools/call",
"nth": 2
},
"response": {
"stdout": "{\"jsonrpc\":\"2.0\",\"id\":@stdin.body.id,\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"Operation completed\"}]}}\n"
}
}
]
}
Napodobení vlastností souboru
| Vlastnictví | Description | Povinné |
|---|---|---|
request |
Request object that defines the stdin to match | yes |
response |
Objekt odpovědi , který definuje odpověď k vrácení | yes |
Objekt požadavku
Každý požadavek má následující vlastnosti:
| Vlastnictví | Description | Povinné | Výchozí hodnota | Ukázková hodnota |
|---|---|---|---|---|
bodyFragment |
Řetězec, který by měl být v stdin | yes | tools/list |
|
nth |
Odpověď pouze při zachycování požadavku na n-tého času | no | 2 |
Objekt odpovědi
Každá odpověď má následující vlastnosti:
| Vlastnictví | Description | Povinné | Výchozí hodnota | Ukázková hodnota |
|---|---|---|---|---|
stdout |
Obsah, který se má odeslat do stdoutu | no | empty | {"result": "ok"}\n |
stderr |
Obsah k odeslání do stderru | no | empty | Error: Something went wrong\n |
Poznámky k odpovědím
Pokud chcete načíst obsah odpovědi ze souboru, nastavte stdout hodnotu řetězce nebo stderr vlastnosti, která začíná @ cestou k souboru vzhledem k souboru napodobení. Vrátí například @response.json obsah uložený v response.json souboru ve stejném adresáři jako soubor napodobování.
Pokud chcete do odpovědi dynamicky zahrnout hodnoty ze stdin, použijte @stdin.body.* zástupné symboly. Například @stdin.body.id vrátí hodnotu id vlastnosti ze stdin JSON.
Poznámky k modulům plug-in
Tento modul plug-in je určený pro použití s příkazemstdio k zachycení a napodobení komunikace STDIO s místními spustitelnými soubory. Je užitečné pro testování a ladění serverů MCP (Model Context Protocol) a dalších aplikací založených na STDIO.
Pokud blockUnmockedRequests je nastavená hodnota true, všechny stdin, které neodpovídají napodobení, se spotřebují a nepřepošla do podřízeného procesu. Blokování neockovaných požadavků je užitečné, když chcete plně napodobení chování spustitelného souboru bez spuštění jeho skutečné logiky.