ca_ota_search
Pack: california-tax-appeals · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/ca_ota_search for the schema, then POST the same URL with its arguments for the data.
Find California Office of Tax Appeals (OTA) opinions by statute citation or topic keyword (e.g. “residency”, “innocent spouse”, “17014”, “17951-4”, “generative AI”) — returns citation, title, date, tax category (Franchise/Income vs Business Tax), precedential status, and OTA’s own one-line issue/statute tag, most recent first with an exact phrase match ranked above a looser match. Matches every word of query (any order), with a small bidirectional synonym table for OTA’s own shorthand (e.g. “GenAI” <-> “generative AI” <-> “AI” <-> “artificial intelligence”). Use year for “opinions from 2026” rather than putting the year in query text — it almost never appears inside an opinion’s title or Issues tag. PARTIAL: this searches opinion titles and OTA’s published “Issues” tag only, not full opinion text (OTA publishes no full-text search). For full text and all cited provisions of a specific opinion, use ca_ota_opinion_lookup. Sourced from ota.ca.gov’s own opinion listing pages.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | no | A topic keyword (e.g. “residency”, “penalties”, “innocent spouse”, “generative AI”) or a statute citation/number (e.g. “17014” or “R&TC 19045”). May be omitted if you only need year/category/precedential_only filters. A bare year inside this text (e.g. “2026”) is treated as a year filter, not as text to match. |
year | number | no | Optional filter: only opinions issued in this calendar year, e.g. 2026. Prefer this over putting the year inside query — OTA’s own title/Issues tag almost never repeats the year. |
category | string | no | Optional filter: “fit” (Franchise and Income Tax, FTB-administered) or “bt” (Business Tax, CDTFA-administered: sales/use, excise, etc). |
precedential_only | boolean | no | If true, only return opinions OTA has designated Precedential (binding on future OTA panels). Default false (returns both). |
limit | number | no | Max opinions to return, default 25, max 100. |
Example call
Arguments
{
"query": "residency"
}
curl
curl -X POST https://gateway.pipeworx.io/california-tax-appeals/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ca_ota_search","arguments":{"query":"residency"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('ca_ota_search', {
"query": "residency"
});
More examples
{
"query": "generative AI"
}
{
"year": 2026,
"precedential_only": true
}
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the california-tax-appeals pack
{
"mcpServers": {
"california-tax-appeals": {
"url": "https://gateway.pipeworx.io/california-tax-appeals/mcp"
}
}
}
See Getting Started for client-specific install steps.