FoxNose Knowledge
Managed knowledge for AI agents: hybrid search, auto-embeddings and live schema introspection over your own collections, behind one endpoint.
What it can do
- Discover Resources: List available Flux resources and capabilities. Start here: every other tool takes a resource_id from this list, and a resource's capabilities say which of them it will accept.
- Describe Resource: Return schema and searchability for a resource_id. Call it before filtering or sorting, to learn the field names and which fields are searchable. Searching by text does not need it.
- Get Record: Fetch one record by id for a resource_id, whole and untruncated. Use it when the id is already known; where the resource lists get_many among its discover_resources capabilities, search_re
What data it sees
Do you need an account
An API key from the service settings is required
Managed knowledge for AI agents: hybrid search, auto-embeddings and live schema introspection over your own collections, behind one endpoint.
Agents usually fail at the knowledge layer, not the model. The usual setup is a vector database, an embedding pipeline, a sync job and a hand-written MCP server that drifts out of step with all three. FoxNose replaces that with one managed service that speaks REST and MCP over the same data and the same schema.
Tools
| Tool | What it does |
|---|---|
discover_resources |
Lists the collections the key can reach, with their schemas |
describe_resource |
Returns the live JSON Schema for one collection |
search_records |
Hybrid search: vector similarity, full text and structured filters in one query |
query_records |
Filtered, sorted, paginated listing |
get_record |
Fetches a single record |
create_record |
Creates a record (requires a key with create grants) |
update_record |
Updates a record (requires a key with update grants) |
Because the agent reads the schema at runtime, you do not describe your data shape in the prompt, and a schema change does not silently break the agent.
Connecting
Create a Flux API key in the dashboard, issue a bearer token bound to it, and paste the token when you add this server. Scopes follow the key: a collection the key cannot read over REST is not reachable over MCP either, so a read-only key is a read-only agent.
If the key can read more than one Flux API, set the optional API prefix field. With a single API the prefix is selected automatically.
The write tools appear in tools/list only when the presented key grants create
and update on the selected API. A read-only key sees five tools instead of seven.
Links
- Documentation
- Connect Claude
- Connect ChatGPT
- Pricing — free tier, no card
Run by FoxNose.
How to connect
How to connect FoxNose Knowledge to Claude
The server address to paste into Claude settings:
https://knowledge--foxnose.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect FoxNose Knowledge to ChatGPT
The server address to paste into ChatGPT settings:
https://knowledge--foxnose.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect FoxNose Knowledge to Cursor
The server address to paste into Cursor settings:
https://knowledge--foxnose.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (7)
Raw names from tools/list. Only developers need these.
| discover_resources | List available Flux resources and capabilities. Start here: every other tool takes a resource_id from this list, and a resource's capabilities say which of them it will accept. |
| describe_resource | Return schema and searchability for a resource_id. Call it before filtering or sorting, to learn the field names and which fields are searchable. Searching by text does not need it. |
| get_record | Fetch one record by id for a resource_id, whole and untruncated. Use it when the id is already known; where the resource lists get_many among its discover_resources capabilities, search_records or query_records finds one first. |
| query_records | List records by filters/sort/cursor for a resource_id. Use it when the selection is expressible as field conditions; when the request is in the user's own words, search_records ranks by meaning instead. Long text fields may be shortened in results; a shortened record carries `_sys.truncated`. Where the resource lists get_one among its discover_resources capabilities, call get_record with that record's id for the full document. Returns 5 records unless `limit` says otherwise — enough to find a document and then fetch it. When the task is to enumerate or count, raise `limit` (up to 100) instead of paging through small pages: every page is resent on every later turn, so many small pages cost far more than one large one. |
| search_records | Search records for a resource_id; `search_type` decides how the query is matched and defaults to hybrid. Use it when the request is in the user's own words; when the selection is an exact field condition, query_records filters without ranking. Long text fields may be shortened in results; a shortened record carries `_sys.truncated`. Where the resource lists get_one among its discover_resources capabilities, call get_record with that record's id for the full document. Returns 5 records unless `limit` says otherwise — enough to choose among hits and then fetch one. When the task is to enumerate or count, raise `limit` (up to 100) instead of paging through small pages: every page is resent on every later turn, so many small pages cost far more than one large one. |
| create_record | Create a record in a collection and publish it immediately. `data` must match the collection schema (inspect it with describe_resource). Returns the resource_key to use with get_record/update_record. Requires the CREATE permission on this API. |
| update_record | Replace a record's document with a new published revision (full-document replace, not a partial patch). `data` must match the collection schema (see describe_resource). Requires the UPDATE permission on this API. |