test-mcp
Build and test the paperless-ngx-mcp server against a live Paperless-ngx instance
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Build and test the paperless-ngx-mcp server against a live Paperless-ngx instance
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | test-mcp |
| description | Build and test the paperless-ngx-mcp server against a live Paperless-ngx instance |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Grep, Glob |
| argument-hint | <paperless-url> <api-token> |
Build and test the paperless-ngx-mcp server against a live Paperless-ngx instance.
Target: $0 with token $1
make build
printf to send multiple newline-delimited messages in a single pipe. Responses arrive out of order — match by id.The tool calls below cover every read-oriented tool category:
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test-mcp-skill","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized"}\n{"jsonrpc":"2.0","id":2,"method":"tools/list"}\n{"jsonrpc":"2.0","id":10,"method":"tools/call","params":{"name":"system_status","arguments":{}}}\n{"jsonrpc":"2.0","id":11,"method":"tools/call","params":{"name":"remote_version","arguments":{}}}\n{"jsonrpc":"2.0","id":12,"method":"tools/call","params":{"name":"statistics","arguments":{}}}\n{"jsonrpc":"2.0","id":13,"method":"tools/call","params":{"name":"ui_settings_get","arguments":{}}}\n{"jsonrpc":"2.0","id":14,"method":"tools/call","params":{"name":"config_list","arguments":{}}}\n{"jsonrpc":"2.0","id":15,"method":"tools/call","params":{"name":"log_list","arguments":{}}}\n{"jsonrpc":"2.0","id":16,"method":"tools/call","params":{"name":"task_list","arguments":{"page_size":5}}}\n{"jsonrpc":"2.0","id":20,"method":"tools/call","params":{"name":"document_list","arguments":{"page_size":3}}}\n{"jsonrpc":"2.0","id":21,"method":"tools/call","params":{"name":"document_next_asn","arguments":{}}}\n{"jsonrpc":"2.0","id":30,"method":"tools/call","params":{"name":"tag_list","arguments":{}}}\n{"jsonrpc":"2.0","id":31,"method":"tools/call","params":{"name":"correspondent_list","arguments":{}}}\n{"jsonrpc":"2.0","id":32,"method":"tools/call","params":{"name":"document_type_list","arguments":{}}}\n{"jsonrpc":"2.0","id":33,"method":"tools/call","params":{"name":"storage_path_list","arguments":{}}}\n{"jsonrpc":"2.0","id":34,"method":"tools/call","params":{"name":"custom_field_list","arguments":{}}}\n{"jsonrpc":"2.0","id":40,"method":"tools/call","params":{"name":"saved_view_list","arguments":{}}}\n{"jsonrpc":"2.0","id":41,"method":"tools/call","params":{"name":"share_link_list","arguments":{}}}\n{"jsonrpc":"2.0","id":50,"method":"tools/call","params":{"name":"user_list","arguments":{}}}\n{"jsonrpc":"2.0","id":51,"method":"tools/call","params":{"name":"group_list","arguments":{}}}\n{"jsonrpc":"2.0","id":52,"method":"tools/call","params":{"name":"profile_get","arguments":{}}}\n{"jsonrpc":"2.0","id":60,"method":"tools/call","params":{"name":"mail_account_list","arguments":{}}}\n{"jsonrpc":"2.0","id":61,"method":"tools/call","params":{"name":"mail_rule_list","arguments":{}}}\n{"jsonrpc":"2.0","id":62,"method":"tools/call","params":{"name":"processed_mail_list","arguments":{}}}\n{"jsonrpc":"2.0","id":70,"method":"tools/call","params":{"name":"workflow_list","arguments":{}}}\n{"jsonrpc":"2.0","id":71,"method":"tools/call","params":{"name":"workflow_trigger_list","arguments":{}}}\n{"jsonrpc":"2.0","id":72,"method":"tools/call","params":{"name":"workflow_action_list","arguments":{}}}\n{"jsonrpc":"2.0","id":80,"method":"tools/call","params":{"name":"trash_list","arguments":{}}}\n' | PAPERLESS_URL=$0 PAPERLESS_TOKEN=$1 ./paperless-ngx-mcp mcp 2>/dev/null
id. Use python3 to parse and validate.For each response, check:
result.isError is absent or false (tool succeeded)result.content[0].text contains valid JSONBuild a results table organized by category:
Protocol (id 1-2):
id:1 — initialize: serverInfo.name = paperless-ngx-mcp, protocol versionid:2 — tools/list: count of tools in result.tools arraySystem (id 10-16):
id:10 — system_status: Paperless-ngx version, install typeid:11 — remote_version: available update versionid:12 — statistics: document count, inbox statsid:13 — ui_settings_get: UI theme/settingsid:14 — config_list: configuration entriesid:15 — log_list: available log filesid:16 — task_list: background tasksDocuments (id 20-21):
id:20 — document_list: document count, pagination infoid:21 — document_next_asn: next archive serial numberMetadata (id 30-34):
id:30 — tag_list: tag countid:31 — correspondent_list: correspondent countid:32 — document_type_list: document type countid:33 — storage_path_list: storage path countid:34 — custom_field_list: custom field countViews & Links (id 40-41):
id:40 — saved_view_list: saved view countid:41 — share_link_list: share link countUsers (id 50-52):
id:50 — user_list: user countid:51 — group_list: group countid:52 — profile_get: current user profileMail (id 60-62):
id:60 — mail_account_list: mail account countid:61 — mail_rule_list: mail rule countid:62 — processed_mail_list: processed mail countWorkflows (id 70-72):
id:70 — workflow_list: workflow countid:71 — workflow_trigger_list: trigger countid:72 — workflow_action_list: action countTrash (id 80):
id:80 — trash_list: trashed document countprintf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test-mcp-skill","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized"}\n{"jsonrpc":"2.0","id":90,"method":"tools/call","params":{"name":"document_get","arguments":{"id":DOC_ID}}}\n{"jsonrpc":"2.0","id":91,"method":"tools/call","params":{"name":"document_metadata","arguments":{"id":DOC_ID}}}\n{"jsonrpc":"2.0","id":92,"method":"tools/call","params":{"name":"document_suggestions","arguments":{"id":DOC_ID}}}\n{"jsonrpc":"2.0","id":93,"method":"tools/call","params":{"name":"document_note_list","arguments":{"id":DOC_ID}}}\n{"jsonrpc":"2.0","id":94,"method":"tools/call","params":{"name":"document_history","arguments":{"id":DOC_ID}}}\n' | PAPERLESS_URL=$0 PAPERLESS_TOKEN=$1 ./paperless-ngx-mcp mcp 2>/dev/null
Replace DOC_ID with the actual integer ID. Verify each returns valid data without errors.
Similarly, if tag_list returned results, pick the first tag ID and test tag_get. Do the same for correspondent_get, document_type_get, etc. if those lists returned results.
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test-mcp-skill","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized"}\n{"jsonrpc":"2.0","id":100,"method":"tools/call","params":{"name":"search_autocomplete","arguments":{"term":"invoice"}}}\n' | PAPERLESS_URL=$0 PAPERLESS_TOKEN=$1 ./paperless-ngx-mcp mcp 2>/dev/null
| Category | Tool | Status | Details |
|---|---|---|---|
| Protocol | initialize | ... | ... |
| ... | ... | ... | ... |
Include: