-
Notifications
You must be signed in to change notification settings - Fork 16
mcp_search_records
PhuocLe edited this page Jun 20, 2026
·
3 revisions
| Field | Value |
|---|---|
| Tool name | search_records |
| MCP title | Search records by keyword |
| Category | basic |
| Implementation | DynamicsCrm.DevKit.Cli/Mcp/Tools/SearchRecordsTool.cs |
| Estimated token count | ~302 tokens (tools/list tool JSON, o200k_base, measured 2026-06-18) |
| Last verified | 2026-06-18 |
Dataverse Relevance Search (full-text, ranked, with highlights) across entities. action='search' (needs search_term) or 'status' (config: enabled state, indexed entities/fields, sync status, storage). Requires Relevance Search enabled. Max 100 results — use execute_fetchxml for larger / precise filtering.
WHEN TO USE:
- Find records by keyword across multiple entities
- Quick text search when the exact field is unknown
- Check Relevance Search config / indexed entities (action='status')
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
action |
string |
No | "search" |
'search' or 'status'. |
search_term |
string |
No | "" |
Required for search. 1–100 chars. Syntax: + (AND), | (OR), - (NOT), * (wildcard), "phrase", () (group). |
entities |
string |
No | "" |
Comma-separated entity Display Names or logical names (e.g. 'Account,contact'). Empty = all searchable. |
top |
integer |
No | 50 |
1–100. |
filter |
string |
No | "" |
OData filter (eq, ne, gt, ge, lt, le, and, or, not). E.g. 'statecode eq 0'. |
{
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "'search' or 'status'.",
"default": "search"
},
"search_term": {
"type": "string",
"description": "Required for search. 1–100 chars. Syntax: + (AND), | (OR), - (NOT), * (wildcard), \"phrase\", () (group).",
"default": ""
},
"entities": {
"type": "string",
"description": "Comma-separated entity Display Names or logical names (e.g. 'Account,contact'). Empty = all searchable.",
"default": ""
},
"top": {
"type": "integer",
"description": "1–100.",
"default": 50
},
"filter": {
"type": "string",
"description": "OData filter (eq, ne, gt, ge, lt, le, and, or, not). E.g. 'statecode eq 0'.",
"default": ""
}
},
"required": []
}| Resource | URI / URI template | MIME type | Reason |
|---|---|---|---|
data_operations_guide |
docs://data_operations_guide |
text/markdown |
Inferred from source: Field type formats, FetchXML relationship joins, and search syntax. Read this when manage_record, execute_fetchxml, or search_records returns an error. |
- Find records by keyword across multiple entities
- Quick text search when the exact field is unknown
- Check Relevance Search config / indexed entities (action='status')
- Use the exact MCP description and parameter schema above as the authoritative contract.
{
"action": "string"
}Returns CallToolResult from the MCP server. The response content and structured fields follow the tool implementation and model returned by SearchRecordsTool.search_records.
- "Search Dataverse for this customer name across accounts and contacts."
- "Check whether Relevance Search is enabled and list indexed tables."
- "Search active records matching this phrase and return the top 20 results."