Skip to content

Commit 1cc779e

Browse files
authored
Merge pull request #7 from agoda-com/improve-docs
docs: clarify X-Allow-Unsafe-Paths and X-Poll-Paths header escaping
2 parents 6f9dc4f + 3b597e0 commit 1cc779e

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

README.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,39 @@ That's it. Agent introspects schema, generates queries, runs SQL post-processing
100100
| `X-Target-Headers` | No | JSON auth headers, e.g. `{"Authorization": "Bearer xxx"}` |
101101
| `X-API-Name` | No | Override tool name prefix (default: auto-generated) |
102102
| `X-Base-URL` | No | Override base URL for REST API calls |
103-
| `X-Allow-Unsafe-Paths` | No | JSON array of glob patterns for POST/PUT/DELETE/PATCH |
104-
| `X-Poll-Paths` | No | JSON array of paths requiring polling (enables poll tool) |
103+
| `X-Allow-Unsafe-Paths` | No | Header string containing JSON array of `fnmatch` globs (`*`, `?`) for POST/PUT/DELETE/PATCH |
104+
| `X-Poll-Paths` | No | Header string containing JSON array of polling path patterns (enables poll tool) |
105105
| `X-Include-Result` | No | Include full uncapped `result` field in output |
106106

107+
#### Header value examples
108+
109+
`X-Allow-Unsafe-Paths` and `X-Poll-Paths` use the same escaping format: JSON array encoded as a header string.
110+
111+
**MCP config (JSON):**
112+
```json
113+
{
114+
"headers": {
115+
"X-Allow-Unsafe-Paths": "[\"/search\", \"/api/*/query\", \"/jobs/*/cancel\"]",
116+
"X-Poll-Paths": "[\"/search\", \"/trips/*/status\"]"
117+
}
118+
}
119+
```
120+
121+
**`X-Allow-Unsafe-Paths` pattern examples:**
122+
- `"/search"` exact path
123+
- `"/api/*/query"` one wildcard segment
124+
- `"/jobs/*"` any suffix under `/jobs/`
125+
126+
**`X-Poll-Paths` pattern examples:**
127+
- `"/search"` exact polling path
128+
- `"/trips/*/status"` wildcard polling path
129+
130+
`X-Poll-Paths` enables polling guidance/tooling; `X-Allow-Unsafe-Paths` controls unsafe method allowlist.
131+
132+
**Escaping quick check (same for both headers):**
133+
- wrong: `"X-Allow-Unsafe-Paths": "["/search"]"`
134+
- right: `"X-Allow-Unsafe-Paths": "[\"/search\"]"`
135+
107136
### MCP Tools
108137

109138
**Core tools** (2 per API):

0 commit comments

Comments
 (0)