@oneshot-agent/mcp-server 0.50.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2512,6 +2512,29 @@ export const LOOKUP_MANIFEST = [
2512
2512
  "census_tract": "48201532800"
2513
2513
  }
2514
2514
  },
2515
+ {
2516
+ "name": "organism_resolve",
2517
+ "path": "resolve/organism",
2518
+ "title": "Organism Identity",
2519
+ "description": "Resolves a scientific name, common name or recorded misspelling, or an NCBI Taxonomy ID, to the matching organisms in the Taxonomy database of the US National Center for Biotechnology Information: taxonomy ID, scientific name, common name, rank, division, the lineage from the root down and whether the ID sent is still current. NCBI's Disclaimer (https://www.ncbi.nlm.nih.gov/home/about/policies/#disclaimer) and Copyright notice (https://www.ncbi.nlm.nih.gov/home/about/policies/#copyright) apply to these records: the US Government does not warrant or assume any legal liability or responsibility for their accuracy, completeness or usefulness, and NCBI does not endorse or recommend any commercial products, processes or services. Give exactly one of `name` or `taxonomy_id`. `name` matches every name the source keeps for an organism, including common names and the misspellings it records, so `Home sapiens` resolves to Homo sapiens. The whole name must match; it is not a word search. A name shared by more than one organism (mouse is both the species Mus musculus and the genus Mus) returns each, up to 10, in the source's order, with `ambiguous` true. A retired taxonomy ID returns the record it was merged into, with `active` false. An unknown name or taxonomy ID returns an empty matches list. The NCBI Taxonomy ID is the `taxon_id` input of Gene Resolve.",
2520
+ "inputSchema": {
2521
+ "type": "object",
2522
+ "properties": {
2523
+ "name": {
2524
+ "type": "string",
2525
+ "description": "A scientific name (Homo sapiens), common name (human) or misspelling the source records; give exactly one of name or taxonomy_id. 2 to 200 characters. No double quotes, brackets or control characters."
2526
+ },
2527
+ "taxonomy_id": {
2528
+ "type": "integer",
2529
+ "description": "An NCBI Taxonomy ID, for example 9606; give exactly one of name or taxonomy_id. From 1 to 999999999."
2530
+ }
2531
+ },
2532
+ "required": []
2533
+ },
2534
+ "example": {
2535
+ "name": "Escherichia coli"
2536
+ }
2537
+ },
2515
2538
  {
2516
2539
  "name": "place_resolve",
2517
2540
  "path": "resolve/place",
@@ -3879,6 +3902,111 @@ export const ROUTE_MANIFEST = [
3879
3902
  "state": "IL"
3880
3903
  }
3881
3904
  },
3905
+ {
3906
+ "name": "calls_get",
3907
+ "method": "POST",
3908
+ "path": "/v1/tools/calls/get",
3909
+ "paid": true,
3910
+ "readOnly": true,
3911
+ "title": "Calls get",
3912
+ "description": "Read a business phone call. Transcript is returned only when include requests it and it is available. Unknown fields stay null; absent transcripts are never invented. Returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
3913
+ "inputSchema": {
3914
+ "type": "object",
3915
+ "properties": {
3916
+ "connection_id": {
3917
+ "type": "string",
3918
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
3919
+ },
3920
+ "call_id": {
3921
+ "type": "string",
3922
+ "description": "The id from calls_list"
3923
+ },
3924
+ "include": {
3925
+ "type": "array",
3926
+ "items": {
3927
+ "type": "string",
3928
+ "enum": [
3929
+ "transcript"
3930
+ ]
3931
+ },
3932
+ "description": "Transcript only when requested and available; default none"
3933
+ }
3934
+ },
3935
+ "required": [
3936
+ "connection_id",
3937
+ "call_id"
3938
+ ]
3939
+ },
3940
+ "example": {
3941
+ "connection_id": "11111111-1111-4111-8111-111111111111",
3942
+ "call_id": "call_1",
3943
+ "include": [
3944
+ "transcript"
3945
+ ]
3946
+ }
3947
+ },
3948
+ {
3949
+ "name": "calls_list",
3950
+ "method": "POST",
3951
+ "path": "/v1/tools/calls/list",
3952
+ "paid": true,
3953
+ "readOnly": true,
3954
+ "title": "Calls list",
3955
+ "description": "Read business phone calls in a required window of at most 31 days, filtered by either phone number, direction and business user id. Follow next_cursor even on empty filtered pages. Returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
3956
+ "inputSchema": {
3957
+ "type": "object",
3958
+ "properties": {
3959
+ "connection_id": {
3960
+ "type": "string",
3961
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
3962
+ },
3963
+ "started_after": {
3964
+ "type": "string",
3965
+ "description": "Inclusive start instant, ISO 8601 with timezone"
3966
+ },
3967
+ "started_before": {
3968
+ "type": "string",
3969
+ "description": "Exclusive end instant, at most 31 days after started_after"
3970
+ },
3971
+ "number": {
3972
+ "type": "string",
3973
+ "description": "E.164 phone number matching either party"
3974
+ },
3975
+ "direction": {
3976
+ "type": "string",
3977
+ "enum": [
3978
+ "inbound",
3979
+ "outbound",
3980
+ "all"
3981
+ ],
3982
+ "description": "Call direction, default all"
3983
+ },
3984
+ "user": {
3985
+ "type": "string",
3986
+ "description": "The business user id who made or took the call"
3987
+ },
3988
+ "limit": {
3989
+ "type": "integer",
3990
+ "description": "Calls per page, 1 to 100, default 25"
3991
+ },
3992
+ "cursor": {
3993
+ "type": "string",
3994
+ "description": "The previous next_cursor, unchanged"
3995
+ }
3996
+ },
3997
+ "required": [
3998
+ "connection_id",
3999
+ "started_after",
4000
+ "started_before"
4001
+ ]
4002
+ },
4003
+ "example": {
4004
+ "connection_id": "11111111-1111-4111-8111-111111111111",
4005
+ "started_after": "2026-10-01T00:00:00Z",
4006
+ "started_before": "2026-11-01T00:00:00Z",
4007
+ "limit": 25
4008
+ }
4009
+ },
3882
4010
  {
3883
4011
  "name": "physical_mail_cancel",
3884
4012
  "method": "POST",
@@ -3990,6 +4118,171 @@ export const ROUTE_MANIFEST = [
3990
4118
  "since": "2026-01-01"
3991
4119
  }
3992
4120
  },
4121
+ {
4122
+ "name": "client_work_clients",
4123
+ "method": "POST",
4124
+ "path": "/v1/tools/client_work/clients",
4125
+ "paid": true,
4126
+ "readOnly": true,
4127
+ "title": "Client work clients",
4128
+ "description": "Read Karbon clients by partial name and person or organization type, with contact details and client manager and owner. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4129
+ "inputSchema": {
4130
+ "type": "object",
4131
+ "properties": {
4132
+ "connection_id": {
4133
+ "type": "string",
4134
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4135
+ },
4136
+ "limit": {
4137
+ "type": "integer",
4138
+ "minimum": 1,
4139
+ "maximum": 100,
4140
+ "default": 25
4141
+ },
4142
+ "cursor": {
4143
+ "type": "string",
4144
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4145
+ },
4146
+ "query": {
4147
+ "type": "string",
4148
+ "description": "Partial client name, case insensitive"
4149
+ },
4150
+ "type": {
4151
+ "type": "string",
4152
+ "enum": [
4153
+ "person",
4154
+ "organization",
4155
+ "all"
4156
+ ],
4157
+ "default": "all",
4158
+ "description": "All pages through people, then organizations; follow next_cursor"
4159
+ }
4160
+ },
4161
+ "required": [
4162
+ "connection_id"
4163
+ ]
4164
+ },
4165
+ "example": {
4166
+ "connection_id": "11111111-1111-4111-8111-111111111111",
4167
+ "limit": 25,
4168
+ "query": "Acme"
4169
+ }
4170
+ },
4171
+ {
4172
+ "name": "client_work_items",
4173
+ "method": "POST",
4174
+ "path": "/v1/tools/client_work/items",
4175
+ "paid": true,
4176
+ "readOnly": true,
4177
+ "title": "Client work items",
4178
+ "description": "Read Karbon work items by client, status, due date, assignee email and work type. Planned includes ready to start. Planned and due date filters narrow each page: follow next_cursor even on empty pages. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4179
+ "inputSchema": {
4180
+ "type": "object",
4181
+ "properties": {
4182
+ "connection_id": {
4183
+ "type": "string",
4184
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4185
+ },
4186
+ "limit": {
4187
+ "type": "integer",
4188
+ "minimum": 1,
4189
+ "maximum": 100,
4190
+ "default": 25
4191
+ },
4192
+ "cursor": {
4193
+ "type": "string",
4194
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4195
+ },
4196
+ "client_id": {
4197
+ "type": "string",
4198
+ "description": "Client id from client_work_clients"
4199
+ },
4200
+ "status": {
4201
+ "type": "string",
4202
+ "enum": [
4203
+ "planned",
4204
+ "in_progress",
4205
+ "waiting",
4206
+ "completed",
4207
+ "all"
4208
+ ],
4209
+ "default": "all"
4210
+ },
4211
+ "due_before": {
4212
+ "type": "string",
4213
+ "description": "Due on or before this YYYY-MM-DD day, inclusive"
4214
+ },
4215
+ "assignee": {
4216
+ "type": "string",
4217
+ "description": "The assigned user email address"
4218
+ },
4219
+ "work_type": {
4220
+ "type": "string",
4221
+ "description": "Exact work type name"
4222
+ }
4223
+ },
4224
+ "required": [
4225
+ "connection_id"
4226
+ ]
4227
+ },
4228
+ "example": {
4229
+ "connection_id": "11111111-1111-4111-8111-111111111111",
4230
+ "limit": 25,
4231
+ "due_before": "2026-11-01"
4232
+ }
4233
+ },
4234
+ {
4235
+ "name": "client_work_timesheets",
4236
+ "method": "POST",
4237
+ "path": "/v1/tools/client_work/timesheets",
4238
+ "paid": true,
4239
+ "readOnly": true,
4240
+ "title": "Client work timesheets",
4241
+ "description": "Read Karbon individual time entries by client, work item, user id and start date, with minutes and task-type billability. Related names and titles may be null. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4242
+ "inputSchema": {
4243
+ "type": "object",
4244
+ "properties": {
4245
+ "connection_id": {
4246
+ "type": "string",
4247
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4248
+ },
4249
+ "limit": {
4250
+ "type": "integer",
4251
+ "minimum": 1,
4252
+ "maximum": 100,
4253
+ "default": 25
4254
+ },
4255
+ "cursor": {
4256
+ "type": "string",
4257
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4258
+ },
4259
+ "client_id": {
4260
+ "type": "string",
4261
+ "description": "Client id from client_work_clients"
4262
+ },
4263
+ "work_item_id": {
4264
+ "type": "string",
4265
+ "description": "Work item id from client_work_items"
4266
+ },
4267
+ "user": {
4268
+ "type": "string",
4269
+ "description": "The system user id"
4270
+ },
4271
+ "since": {
4272
+ "type": "string",
4273
+ "description": "Entries on or after this YYYY-MM-DD day, inclusive"
4274
+ }
4275
+ },
4276
+ "required": [
4277
+ "connection_id"
4278
+ ]
4279
+ },
4280
+ "example": {
4281
+ "connection_id": "11111111-1111-4111-8111-111111111111",
4282
+ "limit": 25,
4283
+ "since": "2026-10-01"
4284
+ }
4285
+ },
3993
4286
  {
3994
4287
  "name": "company_dossier",
3995
4288
  "method": "POST",
@@ -4098,7 +4391,7 @@ export const ROUTE_MANIFEST = [
4098
4391
  "paid": true,
4099
4392
  "readOnly": true,
4100
4393
  "title": "CRM accounts",
4101
- "description": "Read accounts from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4394
+ "description": "Read accounts from a connected Salesforce, HubSpot or Affinity account. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4102
4395
  "inputSchema": {
4103
4396
  "type": "object",
4104
4397
  "properties": {
@@ -4132,6 +4425,70 @@ export const ROUTE_MANIFEST = [
4132
4425
  "limit": 25
4133
4426
  }
4134
4427
  },
4428
+ {
4429
+ "name": "crm_activity",
4430
+ "method": "POST",
4431
+ "path": "/v1/tools/crm/activity",
4432
+ "paid": true,
4433
+ "readOnly": true,
4434
+ "title": "CRM activity",
4435
+ "description": "Read what already happened on a connected HubSpot account, contact, opportunity or ticket: emails, calls, meetings, notes and tasks, each with a short summary of its body. Read-only. Nothing fetched is stored; bodies are customer content. Salesforce does not serve this read yet. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4436
+ "inputSchema": {
4437
+ "type": "object",
4438
+ "properties": {
4439
+ "connection_id": {
4440
+ "type": "string",
4441
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4442
+ },
4443
+ "record": {
4444
+ "type": "object",
4445
+ "properties": {
4446
+ "type": {
4447
+ "type": "string",
4448
+ "enum": [
4449
+ "account",
4450
+ "contact",
4451
+ "opportunity",
4452
+ "ticket"
4453
+ ]
4454
+ },
4455
+ "id": {
4456
+ "type": "string"
4457
+ }
4458
+ },
4459
+ "required": [
4460
+ "type",
4461
+ "id"
4462
+ ],
4463
+ "additionalProperties": false
4464
+ },
4465
+ "since": {
4466
+ "type": "string",
4467
+ "description": "Activity on or after this ISO date (YYYY-MM-DD, UTC)"
4468
+ },
4469
+ "limit": {
4470
+ "type": "number",
4471
+ "description": "Records per page (1 to 100, default 25)"
4472
+ },
4473
+ "cursor": {
4474
+ "type": "string",
4475
+ "description": "The next_cursor of the previous page; keep the same filters"
4476
+ }
4477
+ },
4478
+ "required": [
4479
+ "connection_id",
4480
+ "record"
4481
+ ]
4482
+ },
4483
+ "example": {
4484
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4485
+ "record": {
4486
+ "type": "contact",
4487
+ "id": "101"
4488
+ },
4489
+ "limit": 25
4490
+ }
4491
+ },
4135
4492
  {
4136
4493
  "name": "crm_contacts",
4137
4494
  "method": "POST",
@@ -4139,7 +4496,7 @@ export const ROUTE_MANIFEST = [
4139
4496
  "paid": true,
4140
4497
  "readOnly": true,
4141
4498
  "title": "CRM contacts",
4142
- "description": "Read contacts from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4499
+ "description": "Read contacts from a connected Salesforce, HubSpot, Follow Up Boss or Affinity account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4143
4500
  "inputSchema": {
4144
4501
  "type": "object",
4145
4502
  "properties": {
@@ -4184,7 +4541,7 @@ export const ROUTE_MANIFEST = [
4184
4541
  "paid": true,
4185
4542
  "readOnly": true,
4186
4543
  "title": "CRM opportunities",
4187
- "description": "Read opportunities from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4544
+ "description": "Read opportunities from a connected Salesforce, HubSpot, Follow Up Boss or Affinity account. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4188
4545
  "inputSchema": {
4189
4546
  "type": "object",
4190
4547
  "properties": {
@@ -4233,13 +4590,71 @@ export const ROUTE_MANIFEST = [
4233
4590
  }
4234
4591
  },
4235
4592
  {
4236
- "name": "watch_delete",
4237
- "method": "DELETE",
4238
- "path": "/v1/tools/watch/{watch_id}",
4239
- "paid": false,
4240
- "readOnly": false,
4241
- "title": "Delete a Watch",
4242
- "description": "Delete a watch so it delivers no more changes. Free.",
4593
+ "name": "crm_tickets",
4594
+ "method": "POST",
4595
+ "path": "/v1/tools/crm/tickets",
4596
+ "paid": true,
4597
+ "readOnly": true,
4598
+ "title": "CRM tickets",
4599
+ "description": "Read support tickets from a connected HubSpot account, with their contact and company. Read-only. Nothing fetched is stored. Other CRM systems do not serve this read. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4600
+ "inputSchema": {
4601
+ "type": "object",
4602
+ "properties": {
4603
+ "connection_id": {
4604
+ "type": "string",
4605
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4606
+ },
4607
+ "query": {
4608
+ "type": "string",
4609
+ "description": "Subject contains this text, case insensitive. A filtered page can be empty; continue while next_cursor is present."
4610
+ },
4611
+ "updated_since": {
4612
+ "type": "string",
4613
+ "description": "Updated on or after this ISO date (YYYY-MM-DD, UTC)"
4614
+ },
4615
+ "limit": {
4616
+ "type": "number",
4617
+ "description": "Records per page (1 to 100, default 25)"
4618
+ },
4619
+ "cursor": {
4620
+ "type": "string",
4621
+ "description": "The next_cursor of the previous page; keep the same filters"
4622
+ },
4623
+ "status": {
4624
+ "type": "string",
4625
+ "enum": [
4626
+ "open",
4627
+ "closed",
4628
+ "all"
4629
+ ],
4630
+ "description": "Ticket status (default all)"
4631
+ },
4632
+ "contact_id": {
4633
+ "type": "string",
4634
+ "description": "Only tickets associated with this contact id"
4635
+ },
4636
+ "company_id": {
4637
+ "type": "string",
4638
+ "description": "Only tickets associated with this company (account) id"
4639
+ }
4640
+ },
4641
+ "required": [
4642
+ "connection_id"
4643
+ ]
4644
+ },
4645
+ "example": {
4646
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4647
+ "limit": 25
4648
+ }
4649
+ },
4650
+ {
4651
+ "name": "watch_delete",
4652
+ "method": "DELETE",
4653
+ "path": "/v1/tools/watch/{watch_id}",
4654
+ "paid": false,
4655
+ "readOnly": false,
4656
+ "title": "Delete a Watch",
4657
+ "description": "Delete a watch so it delivers no more changes. Free.",
4243
4658
  "inputSchema": {
4244
4659
  "type": "object",
4245
4660
  "properties": {
@@ -4280,6 +4695,261 @@ export const ROUTE_MANIFEST = [
4280
4695
  "domain": "mail.example.com"
4281
4696
  }
4282
4697
  },
4698
+ {
4699
+ "name": "company_export_restrictions",
4700
+ "method": "POST",
4701
+ "path": "/v1/tools/lookup/company-export-restrictions",
4702
+ "paid": true,
4703
+ "readOnly": true,
4704
+ "title": "Export Restrictions",
4705
+ "description": "Search US export-control lists by counterparty name and aliases, optionally narrowed by address country. Returns scored matches, the matched name, list, licence requirement and policy, and the published entry fields. For example, “Is Huawei Technologies on an export-control list?” or “Check export restrictions and licence requirements; company_sanctions checks the Treasury SDN list.” No match means no entry on these lists scored at or above min_score; it does not clear the party. Commerce Entity, Denied Persons, Unverified and Military End User lists; State Department ITAR debarred and nonproliferation sanctions, as published in the Consolidated Screening List. The source refreshes daily at 5:00 AM Eastern. Entries include organisations and individuals. Treasury lists are excluded. This is a screening aid; the official Federal Register publication governs.",
4706
+ "inputSchema": {
4707
+ "type": "object",
4708
+ "properties": {
4709
+ "name": {
4710
+ "type": "string",
4711
+ "minLength": 2,
4712
+ "maxLength": 200,
4713
+ "description": "Counterparty name, 2 to 200 characters"
4714
+ },
4715
+ "country": {
4716
+ "type": "string",
4717
+ "pattern": "^[A-Za-z]{2}$",
4718
+ "description": "Optional two-letter country code; narrows matches by address country"
4719
+ },
4720
+ "min_score": {
4721
+ "type": "number",
4722
+ "minimum": 0.5,
4723
+ "maximum": 1,
4724
+ "default": 0.85,
4725
+ "description": "Minimum name score, 0.5 to 1; default 0.85"
4726
+ },
4727
+ "limit": {
4728
+ "type": "integer",
4729
+ "minimum": 1,
4730
+ "maximum": 25,
4731
+ "default": 10,
4732
+ "description": "Most matches returned, 1 to 25; default 10. Total counts all qualifying entries"
4733
+ }
4734
+ },
4735
+ "required": [
4736
+ "name"
4737
+ ]
4738
+ },
4739
+ "example": {
4740
+ "name": "Huawei Technologies Co., Ltd."
4741
+ }
4742
+ },
4743
+ {
4744
+ "name": "field_service_clients",
4745
+ "method": "POST",
4746
+ "path": "/v1/tools/field_service/clients",
4747
+ "paid": true,
4748
+ "readOnly": true,
4749
+ "title": "Field service clients",
4750
+ "description": "Clients read from the customer's connected field service system, with contact details, tags and balance, filtered by text and by last change. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4751
+ "inputSchema": {
4752
+ "type": "object",
4753
+ "properties": {
4754
+ "connection_id": {
4755
+ "type": "string",
4756
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4757
+ },
4758
+ "query": {
4759
+ "type": "string",
4760
+ "description": "Clients whose name, company, email, phone or property matches this text"
4761
+ },
4762
+ "updated_since": {
4763
+ "type": "string",
4764
+ "description": "Clients changed on or after this day (YYYY-MM-DD, UTC)"
4765
+ },
4766
+ "limit": {
4767
+ "type": "integer",
4768
+ "description": "Clients per page, 1 to 100 (default 25)"
4769
+ },
4770
+ "cursor": {
4771
+ "type": "string",
4772
+ "description": "The next_cursor of the previous page"
4773
+ }
4774
+ },
4775
+ "required": [
4776
+ "connection_id"
4777
+ ]
4778
+ },
4779
+ "example": {
4780
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4781
+ "query": "Reyes",
4782
+ "limit": 25
4783
+ }
4784
+ },
4785
+ {
4786
+ "name": "field_service_invoices",
4787
+ "method": "POST",
4788
+ "path": "/v1/tools/field_service/invoices",
4789
+ "paid": true,
4790
+ "readOnly": true,
4791
+ "title": "Field service invoices",
4792
+ "description": "Invoices read from the customer's connected field service system, each with its client, status, total, balance and dates, filtered by client, status and due date. Read-only: nothing is sent or collected. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4793
+ "inputSchema": {
4794
+ "type": "object",
4795
+ "properties": {
4796
+ "connection_id": {
4797
+ "type": "string",
4798
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4799
+ },
4800
+ "client_id": {
4801
+ "type": "string",
4802
+ "description": "Only this client's records, by the id field_service_clients answers"
4803
+ },
4804
+ "status": {
4805
+ "type": "string",
4806
+ "enum": [
4807
+ "draft",
4808
+ "awaiting_payment",
4809
+ "past_due",
4810
+ "paid",
4811
+ "all"
4812
+ ],
4813
+ "description": "draft, awaiting_payment, past_due, paid or all (default all)"
4814
+ },
4815
+ "due_before": {
4816
+ "type": "string",
4817
+ "description": "Invoices due on or before this day (YYYY-MM-DD, UTC)"
4818
+ },
4819
+ "limit": {
4820
+ "type": "integer",
4821
+ "description": "Invoices per page, 1 to 100 (default 25)"
4822
+ },
4823
+ "cursor": {
4824
+ "type": "string",
4825
+ "description": "The next_cursor of the previous page"
4826
+ }
4827
+ },
4828
+ "required": [
4829
+ "connection_id"
4830
+ ]
4831
+ },
4832
+ "example": {
4833
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4834
+ "status": "past_due",
4835
+ "due_before": "2026-10-20",
4836
+ "limit": 25
4837
+ }
4838
+ },
4839
+ {
4840
+ "name": "field_service_jobs",
4841
+ "method": "POST",
4842
+ "path": "/v1/tools/field_service/jobs",
4843
+ "paid": true,
4844
+ "readOnly": true,
4845
+ "title": "Field service jobs",
4846
+ "description": "Jobs read from the customer's connected field service system, each with its client, status, total and visits, filtered by client, status and visit dates. Read-only: nothing is scheduled or changed. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4847
+ "inputSchema": {
4848
+ "type": "object",
4849
+ "properties": {
4850
+ "connection_id": {
4851
+ "type": "string",
4852
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4853
+ },
4854
+ "client_id": {
4855
+ "type": "string",
4856
+ "description": "Only this client's records, by the id field_service_clients answers"
4857
+ },
4858
+ "status": {
4859
+ "type": "string",
4860
+ "enum": [
4861
+ "upcoming",
4862
+ "active",
4863
+ "late",
4864
+ "completed",
4865
+ "all"
4866
+ ],
4867
+ "description": "upcoming, active, late, completed or all (default all)"
4868
+ },
4869
+ "scheduled_after": {
4870
+ "type": "string",
4871
+ "description": "Jobs with a visit on or after this day (YYYY-MM-DD, UTC)"
4872
+ },
4873
+ "scheduled_before": {
4874
+ "type": "string",
4875
+ "description": "Jobs with a visit on or before this day (YYYY-MM-DD, UTC)"
4876
+ },
4877
+ "limit": {
4878
+ "type": "integer",
4879
+ "description": "Jobs per page, 1 to 100 (default 25)"
4880
+ },
4881
+ "cursor": {
4882
+ "type": "string",
4883
+ "description": "The next_cursor of the previous page"
4884
+ }
4885
+ },
4886
+ "required": [
4887
+ "connection_id"
4888
+ ]
4889
+ },
4890
+ "example": {
4891
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4892
+ "status": "upcoming",
4893
+ "scheduled_after": "2026-10-21",
4894
+ "scheduled_before": "2026-10-21",
4895
+ "limit": 25
4896
+ }
4897
+ },
4898
+ {
4899
+ "name": "field_service_quotes",
4900
+ "method": "POST",
4901
+ "path": "/v1/tools/field_service/quotes",
4902
+ "paid": true,
4903
+ "readOnly": true,
4904
+ "title": "Field service quotes",
4905
+ "description": "Quotes read from the customer's connected field service system, each with its client, status, total and when it was sent and approved, filtered by client, status and send date. Read-only: nothing is sent or approved. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4906
+ "inputSchema": {
4907
+ "type": "object",
4908
+ "properties": {
4909
+ "connection_id": {
4910
+ "type": "string",
4911
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4912
+ },
4913
+ "client_id": {
4914
+ "type": "string",
4915
+ "description": "Only this client's records, by the id field_service_clients answers"
4916
+ },
4917
+ "status": {
4918
+ "type": "string",
4919
+ "enum": [
4920
+ "draft",
4921
+ "awaiting_response",
4922
+ "approved",
4923
+ "converted",
4924
+ "archived",
4925
+ "all"
4926
+ ],
4927
+ "description": "draft, awaiting_response, approved, converted, archived or all (default all)"
4928
+ },
4929
+ "sent_after": {
4930
+ "type": "string",
4931
+ "description": "Quotes last sent to the client on or after this day (YYYY-MM-DD, UTC)"
4932
+ },
4933
+ "limit": {
4934
+ "type": "integer",
4935
+ "description": "Quotes per page, 1 to 100 (default 25)"
4936
+ },
4937
+ "cursor": {
4938
+ "type": "string",
4939
+ "description": "The next_cursor of the previous page"
4940
+ }
4941
+ },
4942
+ "required": [
4943
+ "connection_id"
4944
+ ]
4945
+ },
4946
+ "example": {
4947
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4948
+ "status": "awaiting_response",
4949
+ "sent_after": "2026-10-01",
4950
+ "limit": 25
4951
+ }
4952
+ },
4283
4953
  {
4284
4954
  "name": "files_read",
4285
4955
  "method": "POST",
@@ -4351,7 +5021,7 @@ export const ROUTE_MANIFEST = [
4351
5021
  },
4352
5022
  "folder_id": {
4353
5023
  "type": "string",
4354
- "description": "Optional opaque folder id. Recursive for Microsoft; direct children for Google Drive."
5024
+ "description": "Optional opaque folder id. Recursive for Box and Microsoft; direct children for Google Drive."
4355
5025
  }
4356
5026
  },
4357
5027
  "required": [
@@ -4366,27 +5036,67 @@ export const ROUTE_MANIFEST = [
4366
5036
  }
4367
5037
  },
4368
5038
  {
4369
- "name": "physical_mail_order",
4370
- "method": "GET",
4371
- "path": "/v1/tools/physical-mail/orders/{order_id}",
4372
- "paid": false,
5039
+ "name": "company_fund_holdings",
5040
+ "method": "POST",
5041
+ "path": "/v1/tools/lookup/company-fund-holdings",
5042
+ "paid": true,
4373
5043
  "readOnly": true,
4374
- "title": "Get a Mail Order",
4375
- "description": "Read a mail order: order_status, payment_status, fulfillment_status, events, cancel_before and the signed receipt. Free. Delivery events are postal observations, never evidence the mail was read.",
5044
+ "title": "Fund Holdings",
5045
+ "description": "Look up an institutional investment manager’s quarterly Form 13F holdings by manager CIK: issuer, class, CUSIP, FIGI, value in dollars, shares or principal, put or call, investment discretion and voting authority, largest first. For example, “What did Berkshire Hathaway hold at the end of June 2026?” or “Show the positions inside a 13F-HR, beyond the filing that company_filings with form 13F-HR lists.” Form 13F-HR and 13F-HR/A information tables of institutional investment managers. Holdings are reported quarterly, up to 45 days after each quarter ends, and loaded from data sets the SEC posts every three months, so the newest period can be several months old. The four newest data sets (a year of filing dates) are held. Values are in US dollars as reported; confidential holdings the SEC allowed a manager to omit are not listed.",
4376
5046
  "inputSchema": {
4377
5047
  "type": "object",
4378
5048
  "properties": {
4379
- "order_id": {
5049
+ "cik": {
4380
5050
  "type": "string",
4381
- "description": "Order id from oneshot_physical_mail_send or oneshot_physical_mail_recover"
5051
+ "description": "Investment manager CIK, 1 to 10 digits"
5052
+ },
5053
+ "period": {
5054
+ "type": "string",
5055
+ "description": "Quarter end the report covers, YYYY-MM-DD; default the newest loaded period"
5056
+ },
5057
+ "cusip": {
5058
+ "type": "string",
5059
+ "description": "Nine-character CUSIP; only holdings of this security"
5060
+ },
5061
+ "limit": {
5062
+ "type": "integer",
5063
+ "description": "Page size, 1-500, default 100"
5064
+ },
5065
+ "offset": {
5066
+ "type": "integer",
5067
+ "description": "Holdings to skip, 0-100000, default 0"
4382
5068
  }
4383
5069
  },
4384
5070
  "required": [
4385
- "order_id"
5071
+ "cik"
4386
5072
  ]
4387
5073
  },
4388
5074
  "example": {
4389
- "order_id": "00000000-0000-4000-8000-000000000000"
5075
+ "cik": "1067983"
5076
+ }
5077
+ },
5078
+ {
5079
+ "name": "physical_mail_order",
5080
+ "method": "GET",
5081
+ "path": "/v1/tools/physical-mail/orders/{order_id}",
5082
+ "paid": false,
5083
+ "readOnly": true,
5084
+ "title": "Get a Mail Order",
5085
+ "description": "Read a mail order: order_status, payment_status, fulfillment_status, events, cancel_before and the signed receipt. Free. Delivery events are postal observations, never evidence the mail was read.",
5086
+ "inputSchema": {
5087
+ "type": "object",
5088
+ "properties": {
5089
+ "order_id": {
5090
+ "type": "string",
5091
+ "description": "Order id from oneshot_physical_mail_send or oneshot_physical_mail_recover"
5092
+ }
5093
+ },
5094
+ "required": [
5095
+ "order_id"
5096
+ ]
5097
+ },
5098
+ "example": {
5099
+ "order_id": "00000000-0000-4000-8000-000000000000"
4390
5100
  }
4391
5101
  },
4392
5102
  {
@@ -4426,71 +5136,803 @@ export const ROUTE_MANIFEST = [
4426
5136
  "properties": {
4427
5137
  "phone_number_id": {
4428
5138
  "type": "string",
4429
- "description": "Number id from oneshot_voice_numbers"
5139
+ "description": "Number id from oneshot_voice_numbers"
5140
+ }
5141
+ },
5142
+ "required": [
5143
+ "phone_number_id"
5144
+ ]
5145
+ },
5146
+ "example": {
5147
+ "phone_number_id": "pn_01HX"
5148
+ }
5149
+ },
5150
+ {
5151
+ "name": "company_insider_trades",
5152
+ "method": "POST",
5153
+ "path": "/v1/tools/lookup/company-insider-trades",
5154
+ "paid": true,
5155
+ "readOnly": true,
5156
+ "title": "Insider Trades",
5157
+ "description": "Look up a company’s reported insider transactions by issuer CIK or exact ticker: insiders and roles, filing dates, transaction codes, shares and prices. For example, “Which insiders bought or sold GFS?” or “Show transaction amounts, beyond the filing documents listed by company_filings.” Quarterly Forms 3, 4 and 5 transaction filings, posted about a week after each quarter ends. The current quarter’s filings are not yet included. Filings without transaction rows are excluded. All reporting owners of a filing accompany its transactions; the source does not assign individual transaction rows to individual owners.",
5158
+ "inputSchema": {
5159
+ "type": "object",
5160
+ "properties": {
5161
+ "cik": {
5162
+ "type": "string",
5163
+ "description": "Issuer CIK, 1 to 10 digits; exactly one of cik or ticker is required"
5164
+ },
5165
+ "ticker": {
5166
+ "type": "string",
5167
+ "description": "Exact issuer ticker, case insensitive; exactly one of ticker or cik is required"
5168
+ },
5169
+ "filed_after": {
5170
+ "type": "string",
5171
+ "description": "First filing date inclusive, YYYY-MM-DD"
5172
+ },
5173
+ "filed_before": {
5174
+ "type": "string",
5175
+ "description": "Last filing date inclusive, YYYY-MM-DD"
5176
+ },
5177
+ "code": {
5178
+ "type": "string",
5179
+ "description": "Transaction code, such as P or S"
5180
+ },
5181
+ "limit": {
5182
+ "type": "integer",
5183
+ "description": "Page size, 1-100, default 25"
5184
+ },
5185
+ "offset": {
5186
+ "type": "integer",
5187
+ "description": "Transactions to skip, 0-10000, default 0"
5188
+ }
5189
+ },
5190
+ "required": []
5191
+ },
5192
+ "example": {
5193
+ "cik": "1709048"
5194
+ }
5195
+ },
5196
+ {
5197
+ "name": "ledger_bank_transactions",
5198
+ "method": "POST",
5199
+ "path": "/v1/tools/ledger/bank_transactions",
5200
+ "paid": true,
5201
+ "readOnly": true,
5202
+ "title": "Ledger bank transactions",
5203
+ "description": "Bank account lines from a connected accounting system over a period of at most 366 days: date, bank account, counterparty, description, reference, amount with its direction (in or out), `reconciled` (whether the line is matched off against the bank statement) and `has_attachment` (whether a receipt or document is attached), plus the bank accounts seen so the next read can be narrowed with bank_account_id. Xero: every line carries both flags, and both filters apply. QuickBooks: `has_attachment` comes from its attachment records; `reconciled` is null on every line because QuickBooks does not say it per line, the `reconciled: true` filter lists its matched lines only, and `reconciled: false` is refused as unsupported_for_system before payment. Zoho Books and NetSuite bank transactions are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5204
+ "inputSchema": {
5205
+ "type": "object",
5206
+ "properties": {
5207
+ "connection_id": {
5208
+ "type": "string",
5209
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5210
+ },
5211
+ "limit": {
5212
+ "type": "number",
5213
+ "description": "Records per page (1 to 100, default 25)"
5214
+ },
5215
+ "cursor": {
5216
+ "type": "string",
5217
+ "description": "The next_cursor of the previous page"
5218
+ },
5219
+ "from": {
5220
+ "type": "string",
5221
+ "description": "The first day of the period (YYYY-MM-DD)"
5222
+ },
5223
+ "to": {
5224
+ "type": "string",
5225
+ "description": "The last day of the period (YYYY-MM-DD), at most 366 days after from"
5226
+ },
5227
+ "bank_account_id": {
5228
+ "type": "string",
5229
+ "description": "Only the lines of this bank account: an id from the bank_accounts of an earlier answer"
5230
+ },
5231
+ "reconciled": {
5232
+ "type": "boolean",
5233
+ "description": "true: only lines matched off against the bank statement; false: only lines not yet matched (Xero only). Left out: both"
5234
+ },
5235
+ "missing_attachment": {
5236
+ "type": "boolean",
5237
+ "description": "true: only lines with no receipt or document attached. Left out or false: every line"
5238
+ }
5239
+ },
5240
+ "required": [
5241
+ "connection_id",
5242
+ "from",
5243
+ "to"
5244
+ ]
5245
+ },
5246
+ "example": {
5247
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
5248
+ "from": "2026-09-01",
5249
+ "to": "2026-09-30",
5250
+ "missing_attachment": true,
5251
+ "limit": 25
5252
+ }
5253
+ },
5254
+ {
5255
+ "name": "ledger_bills",
5256
+ "method": "POST",
5257
+ "path": "/v1/tools/ledger/bills",
5258
+ "paid": true,
5259
+ "readOnly": true,
5260
+ "title": "Ledger bills",
5261
+ "description": "Bills (payables) from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5262
+ "inputSchema": {
5263
+ "type": "object",
5264
+ "properties": {
5265
+ "connection_id": {
5266
+ "type": "string",
5267
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5268
+ },
5269
+ "limit": {
5270
+ "type": "number",
5271
+ "description": "Records per page (1 to 100, default 25)"
5272
+ },
5273
+ "cursor": {
5274
+ "type": "string",
5275
+ "description": "The next_cursor of the previous page"
5276
+ },
5277
+ "from": {
5278
+ "type": "string",
5279
+ "description": "Records issued on or after this date (YYYY-MM-DD)"
5280
+ },
5281
+ "to": {
5282
+ "type": "string",
5283
+ "description": "Records issued on or before this date (YYYY-MM-DD)"
5284
+ },
5285
+ "status": {
5286
+ "type": "string",
5287
+ "enum": [
5288
+ "open",
5289
+ "paid",
5290
+ "overdue",
5291
+ "all"
5292
+ ],
5293
+ "description": "Payment status filter (default all)"
5294
+ },
5295
+ "counterparty": {
5296
+ "type": "string",
5297
+ "description": "Only records whose counterparty name contains this text"
5298
+ }
5299
+ },
5300
+ "required": [
5301
+ "connection_id"
5302
+ ]
5303
+ },
5304
+ "example": {
5305
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
5306
+ "status": "overdue",
5307
+ "limit": 25
5308
+ }
5309
+ },
5310
+ {
5311
+ "name": "ledger_invoice_lines",
5312
+ "method": "POST",
5313
+ "path": "/v1/tools/ledger/invoice-lines",
5314
+ "paid": true,
5315
+ "readOnly": true,
5316
+ "title": "Ledger invoice lines",
5317
+ "description": "Invoice and credit memo item lines from NetSuite: invoice, issue date, counterparty, item, quantity, amount and currency. Sold units are positive; credit memo quantity and amount are negative. Voided transactions and non-item lines are excluded. Required invoice dates from/to must be at most 400 days apart; up to 500 lines per page. No aggregation: group by customer, item or month yourself. QuickBooks, Xero and Zoho Books invoice lines are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5318
+ "inputSchema": {
5319
+ "type": "object",
5320
+ "properties": {
5321
+ "connection_id": {
5322
+ "type": "string",
5323
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5324
+ },
5325
+ "limit": {
5326
+ "type": "integer",
5327
+ "minimum": 1,
5328
+ "maximum": 500,
5329
+ "default": 25,
5330
+ "description": "Lines per page (1 to 500, default 25); keep the same limit when paging"
5331
+ },
5332
+ "cursor": {
5333
+ "type": "string",
5334
+ "description": "The next_cursor of the previous page"
5335
+ },
5336
+ "from": {
5337
+ "type": "string",
5338
+ "description": "Invoice date on or after this date (YYYY-MM-DD)"
5339
+ },
5340
+ "to": {
5341
+ "type": "string",
5342
+ "description": "Invoice date on or before this date, at most 400 days after from"
5343
+ },
5344
+ "counterparty": {
5345
+ "type": "string",
5346
+ "description": "Only records whose counterparty name contains this text"
5347
+ },
5348
+ "item": {
5349
+ "type": "string",
5350
+ "description": "Only lines whose item name contains this text"
5351
+ }
5352
+ },
5353
+ "required": [
5354
+ "connection_id",
5355
+ "from",
5356
+ "to"
5357
+ ]
5358
+ },
5359
+ "example": {
5360
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
5361
+ "from": "2026-09-01",
5362
+ "to": "2026-09-30",
5363
+ "limit": 25
5364
+ }
5365
+ },
5366
+ {
5367
+ "name": "ledger_invoices",
5368
+ "method": "POST",
5369
+ "path": "/v1/tools/ledger/invoices",
5370
+ "paid": true,
5371
+ "readOnly": true,
5372
+ "title": "Ledger invoices",
5373
+ "description": "Invoices from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5374
+ "inputSchema": {
5375
+ "type": "object",
5376
+ "properties": {
5377
+ "connection_id": {
5378
+ "type": "string",
5379
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5380
+ },
5381
+ "limit": {
5382
+ "type": "number",
5383
+ "description": "Records per page (1 to 100, default 25)"
5384
+ },
5385
+ "cursor": {
5386
+ "type": "string",
5387
+ "description": "The next_cursor of the previous page"
5388
+ },
5389
+ "from": {
5390
+ "type": "string",
5391
+ "description": "Records issued on or after this date (YYYY-MM-DD)"
5392
+ },
5393
+ "to": {
5394
+ "type": "string",
5395
+ "description": "Records issued on or before this date (YYYY-MM-DD)"
5396
+ },
5397
+ "status": {
5398
+ "type": "string",
5399
+ "enum": [
5400
+ "open",
5401
+ "paid",
5402
+ "overdue",
5403
+ "all"
5404
+ ],
5405
+ "description": "Payment status filter (default all)"
5406
+ },
5407
+ "counterparty": {
5408
+ "type": "string",
5409
+ "description": "Only records whose counterparty name contains this text"
5410
+ }
5411
+ },
5412
+ "required": [
5413
+ "connection_id"
5414
+ ]
5415
+ },
5416
+ "example": {
5417
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
5418
+ "status": "open",
5419
+ "limit": 25
5420
+ }
5421
+ },
5422
+ {
5423
+ "name": "ledger_reports",
5424
+ "method": "POST",
5425
+ "path": "/v1/tools/ledger/reports",
5426
+ "paid": true,
5427
+ "readOnly": true,
5428
+ "title": "Ledger reports",
5429
+ "description": "A report from a connected accounting system. QuickBooks: balance_sheet, profit_and_loss and trial_balance, dated with as_of or from/to. Xero: the same three, with a profit_and_loss of at most 365 days. Zoho Books: the same three, with a profit_and_loss that needs from. NetSuite reports are not supported. A report the system does not serve is refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5430
+ "inputSchema": {
5431
+ "type": "object",
5432
+ "properties": {
5433
+ "connection_id": {
5434
+ "type": "string",
5435
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5436
+ },
5437
+ "limit": {
5438
+ "type": "number",
5439
+ "description": "Records per page (1 to 100, default 25)"
5440
+ },
5441
+ "cursor": {
5442
+ "type": "string",
5443
+ "description": "The next_cursor of the previous page"
5444
+ },
5445
+ "type": {
5446
+ "type": "string",
5447
+ "enum": [
5448
+ "balance_sheet",
5449
+ "profit_and_loss",
5450
+ "trial_balance"
5451
+ ],
5452
+ "description": "The report. QuickBooks, Xero and Zoho Books: all three (Zoho Books: profit_and_loss needs from). NetSuite: no reports"
5453
+ },
5454
+ "as_of": {
5455
+ "type": "string",
5456
+ "description": "Balance sheet and trial balance: the date the report stands at (YYYY-MM-DD); today when left out"
5457
+ },
5458
+ "from": {
5459
+ "type": "string",
5460
+ "description": "Profit and loss: the first day of the period (YYYY-MM-DD)"
5461
+ },
5462
+ "to": {
5463
+ "type": "string",
5464
+ "description": "Profit and loss: the last day of the period (YYYY-MM-DD)"
5465
+ }
5466
+ },
5467
+ "required": [
5468
+ "connection_id",
5469
+ "type"
5470
+ ]
5471
+ },
5472
+ "example": {
5473
+ "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
5474
+ "type": "balance_sheet",
5475
+ "as_of": "2026-09-30"
5476
+ }
5477
+ },
5478
+ {
5479
+ "name": "matters_list",
5480
+ "method": "POST",
5481
+ "path": "/v1/tools/matters/list",
5482
+ "paid": true,
5483
+ "readOnly": true,
5484
+ "title": "Legal matters",
5485
+ "description": "Find legal matters by text, client, status, practice area id and update time. From connected Clio. Read-only; privileged records returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5486
+ "inputSchema": {
5487
+ "type": "object",
5488
+ "properties": {
5489
+ "connection_id": {
5490
+ "type": "string",
5491
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5492
+ },
5493
+ "limit": {
5494
+ "type": "integer",
5495
+ "minimum": 1,
5496
+ "maximum": 100,
5497
+ "default": 25
5498
+ },
5499
+ "cursor": {
5500
+ "type": "string",
5501
+ "description": "Opaque next_cursor from this connection and read, with the same filters"
5502
+ },
5503
+ "query": {
5504
+ "type": "string",
5505
+ "description": "Search matter numbers, descriptions and client names"
5506
+ },
5507
+ "client_id": {
5508
+ "type": "string",
5509
+ "description": "Clio client id"
5510
+ },
5511
+ "status": {
5512
+ "type": "string",
5513
+ "enum": [
5514
+ "open",
5515
+ "pending",
5516
+ "closed",
5517
+ "all"
5518
+ ]
5519
+ },
5520
+ "practice_area": {
5521
+ "type": "string",
5522
+ "description": "Clio practice area id"
5523
+ },
5524
+ "updated_since": {
5525
+ "type": "string",
5526
+ "description": "Updated after this ISO 8601 timestamp with offset"
5527
+ }
5528
+ },
5529
+ "required": [
5530
+ "connection_id"
5531
+ ]
5532
+ },
5533
+ "example": {
5534
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5535
+ "query": "Acme",
5536
+ "limit": 25
5537
+ }
5538
+ },
5539
+ {
5540
+ "name": "linkedin_sync_run",
5541
+ "method": "GET",
5542
+ "path": "/v1/tools/linkedin/sync/{run_id}",
5543
+ "paid": false,
5544
+ "readOnly": true,
5545
+ "title": "LinkedIn Sync Run",
5546
+ "description": "Read one LinkedIn history-sync run: its state, the pages and messages it fetched and why it ended. Free. The run id comes from oneshot_linkedin_sync or oneshot_linkedin_accounts with account_id.",
5547
+ "inputSchema": {
5548
+ "type": "object",
5549
+ "properties": {
5550
+ "run_id": {
5551
+ "type": "string",
5552
+ "description": "Sync run id"
5553
+ }
5554
+ },
5555
+ "required": [
5556
+ "run_id"
5557
+ ]
5558
+ },
5559
+ "example": {
5560
+ "run_id": "run_01HX"
5561
+ }
5562
+ },
5563
+ {
5564
+ "name": "watch_list",
5565
+ "method": "GET",
5566
+ "path": "/v1/tools/watch",
5567
+ "paid": false,
5568
+ "readOnly": true,
5569
+ "title": "List Watches",
5570
+ "description": "List the agent's watches with their state, spend and the price of one change. Free.",
5571
+ "inputSchema": {
5572
+ "type": "object",
5573
+ "properties": {},
5574
+ "required": []
5575
+ },
5576
+ "example": {}
5577
+ },
5578
+ {
5579
+ "name": "mailbox_attachment",
5580
+ "method": "POST",
5581
+ "path": "/v1/tools/mailbox/attachment",
5582
+ "paid": true,
5583
+ "readOnly": true,
5584
+ "title": "Mailbox attachment",
5585
+ "description": "Read content inline, at most 10 MB. Gmail supports attachments included in the message MIME payload; external attachments are not supported yet. Known oversized content is refused before payment. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5586
+ "inputSchema": {
5587
+ "type": "object",
5588
+ "properties": {
5589
+ "connection_id": {
5590
+ "type": "string",
5591
+ "format": "uuid",
5592
+ "description": "List GET /v1/connections first and choose by system and account_label."
5593
+ },
5594
+ "message_id": {
5595
+ "type": "string"
5596
+ },
5597
+ "attachment_id": {
5598
+ "type": "string"
5599
+ }
5600
+ },
5601
+ "required": [
5602
+ "connection_id",
5603
+ "message_id",
5604
+ "attachment_id"
5605
+ ]
5606
+ },
5607
+ "example": {
5608
+ "connection_id": "00000000-0000-4000-8000-000000000001",
5609
+ "message_id": "message-1",
5610
+ "attachment_id": "attachment-1"
5611
+ }
5612
+ },
5613
+ {
5614
+ "name": "mailbox_messages",
5615
+ "method": "POST",
5616
+ "path": "/v1/tools/mailbox/messages",
5617
+ "paid": true,
5618
+ "readOnly": true,
5619
+ "title": "Mailbox messages",
5620
+ "description": "Search message snippets and attachment metadata on the chosen connection. At most 50 rows. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5621
+ "inputSchema": {
5622
+ "type": "object",
5623
+ "properties": {
5624
+ "connection_id": {
5625
+ "type": "string",
5626
+ "format": "uuid",
5627
+ "description": "List GET /v1/connections first and choose by system and account_label."
5628
+ },
5629
+ "query": {
5630
+ "type": "string",
5631
+ "minLength": 1,
5632
+ "maxLength": 500,
5633
+ "description": "Required search text. Keep the same filters when paging."
5634
+ },
5635
+ "limit": {
5636
+ "type": "integer",
5637
+ "minimum": 1,
5638
+ "maximum": 50,
5639
+ "default": 25
5640
+ },
5641
+ "cursor": {
5642
+ "type": "string",
5643
+ "description": "The next_cursor from the previous page."
5644
+ },
5645
+ "from": {
5646
+ "type": "string",
5647
+ "format": "date",
5648
+ "description": "Inclusive received date, YYYY-MM-DD."
5649
+ },
5650
+ "to": {
5651
+ "type": "string",
5652
+ "format": "date",
5653
+ "description": "Inclusive received date, YYYY-MM-DD."
5654
+ },
5655
+ "sender": {
5656
+ "type": "string",
5657
+ "format": "email"
5658
+ },
5659
+ "has_attachments": {
5660
+ "type": "boolean"
5661
+ }
5662
+ },
5663
+ "required": [
5664
+ "connection_id",
5665
+ "query",
5666
+ "from",
5667
+ "to"
5668
+ ]
5669
+ },
5670
+ "example": {
5671
+ "connection_id": "00000000-0000-4000-8000-000000000001",
5672
+ "query": "invoice",
5673
+ "from": "2026-10-01",
5674
+ "to": "2026-10-31",
5675
+ "limit": 25
5676
+ }
5677
+ },
5678
+ {
5679
+ "name": "notifications_mark_all_read",
5680
+ "method": "PATCH",
5681
+ "path": "/v1/tools/notifications/read-all",
5682
+ "paid": false,
5683
+ "readOnly": false,
5684
+ "title": "Mark All Notifications Read",
5685
+ "description": "Mark every notification of this agent as read. Free. Mark a single one with oneshot_mark_notification_read.",
5686
+ "inputSchema": {
5687
+ "type": "object",
5688
+ "properties": {},
5689
+ "required": []
5690
+ },
5691
+ "example": {}
5692
+ },
5693
+ {
5694
+ "name": "matters_calendar",
5695
+ "method": "POST",
5696
+ "path": "/v1/tools/matters/calendar",
5697
+ "paid": true,
5698
+ "readOnly": true,
5699
+ "title": "Matter calendar",
5700
+ "description": "Read calendar entries and court-rule deadlines, filtered by matter and start time. From connected Clio. Read-only; privileged records returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5701
+ "inputSchema": {
5702
+ "type": "object",
5703
+ "properties": {
5704
+ "connection_id": {
5705
+ "type": "string",
5706
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5707
+ },
5708
+ "limit": {
5709
+ "type": "integer",
5710
+ "minimum": 1,
5711
+ "maximum": 100,
5712
+ "default": 25
5713
+ },
5714
+ "cursor": {
5715
+ "type": "string",
5716
+ "description": "Opaque next_cursor from this connection and read, with the same filters"
5717
+ },
5718
+ "matter_id": {
5719
+ "type": "string",
5720
+ "description": "Clio matter id"
5721
+ },
5722
+ "starts_after": {
5723
+ "type": "string",
5724
+ "description": "Starts on or after this ISO 8601 timestamp with offset"
5725
+ },
5726
+ "starts_before": {
5727
+ "type": "string",
5728
+ "description": "Starts on or before this ISO 8601 timestamp with offset"
5729
+ }
5730
+ },
5731
+ "required": [
5732
+ "connection_id"
5733
+ ]
5734
+ },
5735
+ "example": {
5736
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5737
+ "matter_id": "101",
5738
+ "limit": 25
5739
+ }
5740
+ },
5741
+ {
5742
+ "name": "matters_contacts",
5743
+ "method": "POST",
5744
+ "path": "/v1/tools/matters/contacts",
5745
+ "paid": true,
5746
+ "readOnly": true,
5747
+ "title": "Matter contacts",
5748
+ "description": "Find contacts by matter id or query, with emails, phones and their role on the matter. From connected Clio. Read-only; privileged records returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5749
+ "inputSchema": {
5750
+ "type": "object",
5751
+ "properties": {
5752
+ "connection_id": {
5753
+ "type": "string",
5754
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5755
+ },
5756
+ "limit": {
5757
+ "type": "integer",
5758
+ "minimum": 1,
5759
+ "maximum": 100,
5760
+ "default": 25
5761
+ },
5762
+ "cursor": {
5763
+ "type": "string",
5764
+ "description": "Opaque next_cursor from this connection and read, with the same filters"
5765
+ },
5766
+ "matter_id": {
5767
+ "type": "string",
5768
+ "description": "Clio matter id; provide this or query"
5769
+ },
5770
+ "query": {
5771
+ "type": "string",
5772
+ "description": "Search contacts; on a matter, filter names, emails and phones"
5773
+ }
5774
+ },
5775
+ "required": [
5776
+ "connection_id"
5777
+ ]
5778
+ },
5779
+ "example": {
5780
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5781
+ "matter_id": "101",
5782
+ "limit": 25
5783
+ }
5784
+ },
5785
+ {
5786
+ "name": "matters_documents",
5787
+ "method": "POST",
5788
+ "path": "/v1/tools/matters/documents",
5789
+ "paid": true,
5790
+ "readOnly": true,
5791
+ "title": "Matter documents",
5792
+ "description": "List document metadata for a matter, optionally by name. No file bodies. From connected Clio. Read-only; privileged records returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5793
+ "inputSchema": {
5794
+ "type": "object",
5795
+ "properties": {
5796
+ "connection_id": {
5797
+ "type": "string",
5798
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5799
+ },
5800
+ "limit": {
5801
+ "type": "integer",
5802
+ "minimum": 1,
5803
+ "maximum": 100,
5804
+ "default": 25
5805
+ },
5806
+ "cursor": {
5807
+ "type": "string",
5808
+ "description": "Opaque next_cursor from this connection and read, with the same filters"
5809
+ },
5810
+ "matter_id": {
5811
+ "type": "string",
5812
+ "description": "Clio matter id, required"
5813
+ },
5814
+ "query": {
5815
+ "type": "string",
5816
+ "description": "Search document names"
5817
+ }
5818
+ },
5819
+ "required": [
5820
+ "connection_id",
5821
+ "matter_id"
5822
+ ]
5823
+ },
5824
+ "example": {
5825
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5826
+ "matter_id": "101",
5827
+ "limit": 25
5828
+ }
5829
+ },
5830
+ {
5831
+ "name": "matters_time",
5832
+ "method": "POST",
5833
+ "path": "/v1/tools/matters/time",
5834
+ "paid": true,
5835
+ "readOnly": true,
5836
+ "title": "Matter time",
5837
+ "description": "Read time entries by matter, user id, date and billed state. From connected Clio. Read-only; privileged records returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5838
+ "inputSchema": {
5839
+ "type": "object",
5840
+ "properties": {
5841
+ "connection_id": {
5842
+ "type": "string",
5843
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
5844
+ },
5845
+ "limit": {
5846
+ "type": "integer",
5847
+ "minimum": 1,
5848
+ "maximum": 100,
5849
+ "default": 25
5850
+ },
5851
+ "cursor": {
5852
+ "type": "string",
5853
+ "description": "Opaque next_cursor from this connection and read, with the same filters"
5854
+ },
5855
+ "matter_id": {
5856
+ "type": "string",
5857
+ "description": "Clio matter id"
5858
+ },
5859
+ "user": {
5860
+ "type": "string",
5861
+ "description": "Clio user id"
5862
+ },
5863
+ "since": {
5864
+ "type": "string",
5865
+ "description": "On or after this YYYY-MM-DD date"
5866
+ },
5867
+ "billed": {
5868
+ "type": "boolean",
5869
+ "description": "true reads billed time only; false reads unbilled time, including draft and non-billable entries; omit for all time"
4430
5870
  }
4431
5871
  },
4432
5872
  "required": [
4433
- "phone_number_id"
5873
+ "connection_id"
4434
5874
  ]
4435
5875
  },
4436
5876
  "example": {
4437
- "phone_number_id": "pn_01HX"
5877
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5878
+ "matter_id": "101",
5879
+ "limit": 25
4438
5880
  }
4439
5881
  },
4440
5882
  {
4441
- "name": "company_insider_trades",
5883
+ "name": "meetings_get",
4442
5884
  "method": "POST",
4443
- "path": "/v1/tools/lookup/company-insider-trades",
5885
+ "path": "/v1/tools/meetings/get",
4444
5886
  "paid": true,
4445
5887
  "readOnly": true,
4446
- "title": "Insider Trades",
4447
- "description": "Look up a company’s reported insider transactions by issuer CIK or exact ticker: insiders and roles, filing dates, transaction codes, shares and prices. For example, “Which insiders bought or sold GFS?” or “Show transaction amounts, beyond the filing documents listed by company_filings.” Quarterly Forms 3, 4 and 5 transaction filings, posted about a week after each quarter ends. The current quarter’s filings are not yet included. Filings without transaction rows are excluded. All reporting owners of a filing accompany its transactions; the source does not assign individual transaction rows to individual owners.",
5888
+ "title": "Meetings get",
5889
+ "description": "One meeting from the customer's connected meeting recorder: its summary and action items, and its transcript only when asked for. Read-only; returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4448
5890
  "inputSchema": {
4449
5891
  "type": "object",
4450
5892
  "properties": {
4451
- "cik": {
4452
- "type": "string",
4453
- "description": "Issuer CIK, 1 to 10 digits; exactly one of cik or ticker is required"
4454
- },
4455
- "ticker": {
4456
- "type": "string",
4457
- "description": "Exact issuer ticker, case insensitive; exactly one of ticker or cik is required"
4458
- },
4459
- "filed_after": {
4460
- "type": "string",
4461
- "description": "First filing date inclusive, YYYY-MM-DD"
4462
- },
4463
- "filed_before": {
5893
+ "connection_id": {
4464
5894
  "type": "string",
4465
- "description": "Last filing date inclusive, YYYY-MM-DD"
5895
+ "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4466
5896
  },
4467
- "code": {
5897
+ "meeting_id": {
4468
5898
  "type": "string",
4469
- "description": "Transaction code, such as P or S"
4470
- },
4471
- "limit": {
4472
- "type": "integer",
4473
- "description": "Page size, 1-100, default 25"
5899
+ "description": "The id of the meeting, as meetings_list answers it"
4474
5900
  },
4475
- "offset": {
4476
- "type": "integer",
4477
- "description": "Transactions to skip, 0-10000, default 0"
5901
+ "include": {
5902
+ "type": "array",
5903
+ "items": {
5904
+ "type": "string",
5905
+ "enum": [
5906
+ "summary",
5907
+ "action_items",
5908
+ "transcript"
5909
+ ]
5910
+ },
5911
+ "description": "What to read besides the meeting itself (default summary and action_items); the transcript only when asked for"
4478
5912
  }
4479
5913
  },
4480
- "required": []
5914
+ "required": [
5915
+ "connection_id",
5916
+ "meeting_id"
5917
+ ]
4481
5918
  },
4482
5919
  "example": {
4483
- "cik": "1709048"
5920
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
5921
+ "meeting_id": "0dba4400-0000-4000-8000-000000000001",
5922
+ "include": [
5923
+ "summary",
5924
+ "action_items"
5925
+ ]
4484
5926
  }
4485
5927
  },
4486
5928
  {
4487
- "name": "ledger_bank_transactions",
5929
+ "name": "meetings_list",
4488
5930
  "method": "POST",
4489
- "path": "/v1/tools/ledger/bank_transactions",
5931
+ "path": "/v1/tools/meetings/list",
4490
5932
  "paid": true,
4491
5933
  "readOnly": true,
4492
- "title": "Ledger bank transactions",
4493
- "description": "Bank account lines from a connected accounting system over a period of at most 366 days: date, bank account, counterparty, description, reference, amount with its direction (in or out), `reconciled` (whether the line is matched off against the bank statement) and `has_attachment` (whether a receipt or document is attached), plus the bank accounts seen so the next read can be narrowed with bank_account_id. Xero: every line carries both flags, and both filters apply. QuickBooks: `has_attachment` comes from its attachment records; `reconciled` is null on every line because QuickBooks does not say it per line, the `reconciled: true` filter lists its matched lines only, and `reconciled: false` is refused as unsupported_for_system before payment. Zoho Books and NetSuite bank transactions are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5934
+ "title": "Meetings list",
5935
+ "description": "Meetings recorded by the customer's connected meeting recorder, with title, start, duration and participants, filtered by start day and by title or participant. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4494
5936
  "inputSchema": {
4495
5937
  "type": "object",
4496
5938
  "properties": {
@@ -4498,57 +5940,42 @@ export const ROUTE_MANIFEST = [
4498
5940
  "type": "string",
4499
5941
  "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4500
5942
  },
4501
- "limit": {
4502
- "type": "number",
4503
- "description": "Records per page (1 to 100, default 25)"
4504
- },
4505
- "cursor": {
5943
+ "since": {
4506
5944
  "type": "string",
4507
- "description": "The next_cursor of the previous page"
5945
+ "description": "Meetings that started on or after this day (YYYY-MM-DD, UTC)"
4508
5946
  },
4509
- "from": {
5947
+ "query": {
4510
5948
  "type": "string",
4511
- "description": "The first day of the period (YYYY-MM-DD)"
5949
+ "description": "Meetings whose title, or a participant's name or email, contains this text (any case)"
4512
5950
  },
4513
- "to": {
4514
- "type": "string",
4515
- "description": "The last day of the period (YYYY-MM-DD), at most 366 days after from"
5951
+ "limit": {
5952
+ "type": "integer",
5953
+ "description": "Meetings per page, 1 to 100 (default 25)"
4516
5954
  },
4517
- "bank_account_id": {
5955
+ "cursor": {
4518
5956
  "type": "string",
4519
- "description": "Only the lines of this bank account: an id from the bank_accounts of an earlier answer"
4520
- },
4521
- "reconciled": {
4522
- "type": "boolean",
4523
- "description": "true: only lines matched off against the bank statement; false: only lines not yet matched (Xero only). Left out: both"
4524
- },
4525
- "missing_attachment": {
4526
- "type": "boolean",
4527
- "description": "true: only lines with no receipt or document attached. Left out or false: every line"
5957
+ "description": "The next_cursor of the previous page"
4528
5958
  }
4529
5959
  },
4530
5960
  "required": [
4531
- "connection_id",
4532
- "from",
4533
- "to"
5961
+ "connection_id"
4534
5962
  ]
4535
5963
  },
4536
5964
  "example": {
4537
- "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4538
- "from": "2026-09-01",
4539
- "to": "2026-09-30",
4540
- "missing_attachment": true,
5965
+ "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
5966
+ "since": "2026-10-01",
5967
+ "query": "client",
4541
5968
  "limit": 25
4542
5969
  }
4543
5970
  },
4544
5971
  {
4545
- "name": "ledger_bills",
5972
+ "name": "portfolio_entities",
4546
5973
  "method": "POST",
4547
- "path": "/v1/tools/ledger/bills",
5974
+ "path": "/v1/tools/portfolio/entities",
4548
5975
  "paid": true,
4549
5976
  "readOnly": true,
4550
- "title": "Ledger bills",
4551
- "description": "Bills (payables) from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
5977
+ "title": "Portfolio entities",
5978
+ "description": "Read Addepar entities by partial name and type: clients, households, legal entities, accounts and funds, with parent entity ids, currency and custodian. The name filter narrows each page: follow next_cursor even on empty pages. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4552
5979
  "inputSchema": {
4553
5980
  "type": "object",
4554
5981
  "properties": {
@@ -4557,34 +5984,30 @@ export const ROUTE_MANIFEST = [
4557
5984
  "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4558
5985
  },
4559
5986
  "limit": {
4560
- "type": "number",
4561
- "description": "Records per page (1 to 100, default 25)"
5987
+ "type": "integer",
5988
+ "minimum": 1,
5989
+ "maximum": 100,
5990
+ "default": 25
4562
5991
  },
4563
5992
  "cursor": {
4564
5993
  "type": "string",
4565
- "description": "The next_cursor of the previous page"
4566
- },
4567
- "from": {
4568
- "type": "string",
4569
- "description": "Records issued on or after this date (YYYY-MM-DD)"
5994
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4570
5995
  },
4571
- "to": {
5996
+ "query": {
4572
5997
  "type": "string",
4573
- "description": "Records issued on or before this date (YYYY-MM-DD)"
5998
+ "description": "Partial entity name, case insensitive; narrows each page"
4574
5999
  },
4575
- "status": {
6000
+ "type": {
4576
6001
  "type": "string",
4577
6002
  "enum": [
4578
- "open",
4579
- "paid",
4580
- "overdue",
6003
+ "client",
6004
+ "household",
6005
+ "legal_entity",
6006
+ "account",
6007
+ "fund",
4581
6008
  "all"
4582
6009
  ],
4583
- "description": "Payment status filter (default all)"
4584
- },
4585
- "counterparty": {
4586
- "type": "string",
4587
- "description": "Only records whose counterparty name contains this text"
6010
+ "default": "all"
4588
6011
  }
4589
6012
  },
4590
6013
  "required": [
@@ -4592,19 +6015,19 @@ export const ROUTE_MANIFEST = [
4592
6015
  ]
4593
6016
  },
4594
6017
  "example": {
4595
- "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4596
- "status": "overdue",
4597
- "limit": 25
6018
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6019
+ "limit": 25,
6020
+ "query": "Reyes"
4598
6021
  }
4599
6022
  },
4600
6023
  {
4601
- "name": "ledger_invoice_lines",
6024
+ "name": "portfolio_holdings",
4602
6025
  "method": "POST",
4603
- "path": "/v1/tools/ledger/invoice-lines",
6026
+ "path": "/v1/tools/portfolio/holdings",
4604
6027
  "paid": true,
4605
6028
  "readOnly": true,
4606
- "title": "Ledger invoice lines",
4607
- "description": "Invoice and credit memo item lines from NetSuite: invoice, issue date, counterparty, item, quantity, amount and currency. Sold units are positive; credit memo quantity and amount are negative. Voided transactions and non-item lines are excluded. Required invoice dates from/to must be at most 400 days apart; up to 500 lines per page. No aggregation: group by customer, item or month yourself. QuickBooks, Xero and Zoho Books invoice lines are not supported and are refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6029
+ "title": "Portfolio holdings",
6030
+ "description": "Read Addepar holdings of one entity as of a date (today by default), grouped by security, asset class or custodian: quantity, market value, currency, weight and tax basis. One query, paged locally. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4608
6031
  "inputSchema": {
4609
6032
  "type": "object",
4610
6033
  "properties": {
@@ -4615,52 +6038,51 @@ export const ROUTE_MANIFEST = [
4615
6038
  "limit": {
4616
6039
  "type": "integer",
4617
6040
  "minimum": 1,
4618
- "maximum": 500,
4619
- "default": 25,
4620
- "description": "Lines per page (1 to 500, default 25); keep the same limit when paging"
6041
+ "maximum": 100,
6042
+ "default": 25
4621
6043
  },
4622
6044
  "cursor": {
4623
6045
  "type": "string",
4624
- "description": "The next_cursor of the previous page"
4625
- },
4626
- "from": {
4627
- "type": "string",
4628
- "description": "Invoice date on or after this date (YYYY-MM-DD)"
6046
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4629
6047
  },
4630
- "to": {
6048
+ "entity_id": {
4631
6049
  "type": "string",
4632
- "description": "Invoice date on or before this date, at most 400 days after from"
6050
+ "description": "Entity id from portfolio_entities"
4633
6051
  },
4634
- "counterparty": {
6052
+ "as_of": {
4635
6053
  "type": "string",
4636
- "description": "Only records whose counterparty name contains this text"
6054
+ "description": "Holdings date, YYYY-MM-DD; today when omitted"
4637
6055
  },
4638
- "item": {
6056
+ "group_by": {
4639
6057
  "type": "string",
4640
- "description": "Only lines whose item name contains this text"
6058
+ "enum": [
6059
+ "security",
6060
+ "asset_class",
6061
+ "custodian"
6062
+ ],
6063
+ "default": "security"
4641
6064
  }
4642
6065
  },
4643
6066
  "required": [
4644
6067
  "connection_id",
4645
- "from",
4646
- "to"
6068
+ "entity_id"
4647
6069
  ]
4648
6070
  },
4649
6071
  "example": {
4650
- "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4651
- "from": "2026-09-01",
4652
- "to": "2026-09-30",
4653
- "limit": 25
6072
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6073
+ "limit": 25,
6074
+ "entity_id": "1001",
6075
+ "group_by": "asset_class"
4654
6076
  }
4655
6077
  },
4656
6078
  {
4657
- "name": "ledger_invoices",
6079
+ "name": "portfolio_performance",
4658
6080
  "method": "POST",
4659
- "path": "/v1/tools/ledger/invoices",
6081
+ "path": "/v1/tools/portfolio/performance",
4660
6082
  "paid": true,
4661
6083
  "readOnly": true,
4662
- "title": "Ledger invoices",
4663
- "description": "Invoices from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6084
+ "title": "Portfolio performance",
6085
+ "description": "Read Addepar performance of one entity over a period (year to date by default), the entity total first, then each security, asset class or custodian group: time-weighted return, IRR, beginning and ending value and net flows. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4664
6086
  "inputSchema": {
4665
6087
  "type": "object",
4666
6088
  "properties": {
@@ -4669,54 +6091,58 @@ export const ROUTE_MANIFEST = [
4669
6091
  "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4670
6092
  },
4671
6093
  "limit": {
4672
- "type": "number",
4673
- "description": "Records per page (1 to 100, default 25)"
6094
+ "type": "integer",
6095
+ "minimum": 1,
6096
+ "maximum": 100,
6097
+ "default": 25
4674
6098
  },
4675
6099
  "cursor": {
4676
6100
  "type": "string",
4677
- "description": "The next_cursor of the previous page"
6101
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4678
6102
  },
4679
- "from": {
6103
+ "entity_id": {
4680
6104
  "type": "string",
4681
- "description": "Records issued on or after this date (YYYY-MM-DD)"
6105
+ "description": "Entity id from portfolio_entities"
4682
6106
  },
4683
- "to": {
6107
+ "start": {
4684
6108
  "type": "string",
4685
- "description": "Records issued on or before this date (YYYY-MM-DD)"
6109
+ "description": "First day, YYYY-MM-DD; the first day of the end year when omitted"
4686
6110
  },
4687
- "status": {
6111
+ "end": {
4688
6112
  "type": "string",
4689
- "enum": [
4690
- "open",
4691
- "paid",
4692
- "overdue",
4693
- "all"
4694
- ],
4695
- "description": "Payment status filter (default all)"
6113
+ "description": "Last day, YYYY-MM-DD; today when omitted"
4696
6114
  },
4697
- "counterparty": {
6115
+ "group_by": {
4698
6116
  "type": "string",
4699
- "description": "Only records whose counterparty name contains this text"
6117
+ "enum": [
6118
+ "security",
6119
+ "asset_class",
6120
+ "custodian"
6121
+ ],
6122
+ "default": "asset_class"
4700
6123
  }
4701
6124
  },
4702
6125
  "required": [
4703
- "connection_id"
6126
+ "connection_id",
6127
+ "entity_id"
4704
6128
  ]
4705
6129
  },
4706
6130
  "example": {
4707
- "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4708
- "status": "open",
4709
- "limit": 25
6131
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6132
+ "limit": 25,
6133
+ "entity_id": "1001",
6134
+ "start": "2026-07-01",
6135
+ "end": "2026-09-30"
4710
6136
  }
4711
6137
  },
4712
6138
  {
4713
- "name": "ledger_reports",
6139
+ "name": "portfolio_transactions",
4714
6140
  "method": "POST",
4715
- "path": "/v1/tools/ledger/reports",
6141
+ "path": "/v1/tools/portfolio/transactions",
4716
6142
  "paid": true,
4717
6143
  "readOnly": true,
4718
- "title": "Ledger reports",
4719
- "description": "A report from a connected accounting system. QuickBooks: balance_sheet, profit_and_loss and trial_balance, dated with as_of or from/to. Xero: the same three, with a profit_and_loss of at most 365 days. Zoho Books: the same three, with a profit_and_loss that needs from. NetSuite reports are not supported. A report the system does not serve is refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6144
+ "title": "Portfolio transactions",
6145
+ "description": "Read Addepar transactions of one entity between two dates (the last 90 days by default) by type: buys, sells, contributions, distributions, capital calls, income and fees, with security, quantity, amount and currency. The type filter is applied by Addepar, so each page holds only that type. Answered inline only; nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4720
6146
  "inputSchema": {
4721
6147
  "type": "object",
4722
6148
  "properties": {
@@ -4725,276 +6151,323 @@ export const ROUTE_MANIFEST = [
4725
6151
  "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
4726
6152
  },
4727
6153
  "limit": {
4728
- "type": "number",
4729
- "description": "Records per page (1 to 100, default 25)"
6154
+ "type": "integer",
6155
+ "minimum": 1,
6156
+ "maximum": 100,
6157
+ "default": 25
4730
6158
  },
4731
6159
  "cursor": {
4732
6160
  "type": "string",
4733
- "description": "The next_cursor of the previous page"
6161
+ "description": "Opaque next_cursor from this connection and read, with unchanged filters"
4734
6162
  },
4735
- "type": {
6163
+ "entity_id": {
4736
6164
  "type": "string",
4737
- "enum": [
4738
- "balance_sheet",
4739
- "profit_and_loss",
4740
- "trial_balance"
4741
- ],
4742
- "description": "The report. QuickBooks, Xero and Zoho Books: all three (Zoho Books: profit_and_loss needs from). NetSuite: no reports"
6165
+ "description": "Entity id from portfolio_entities"
4743
6166
  },
4744
- "as_of": {
6167
+ "since": {
4745
6168
  "type": "string",
4746
- "description": "Balance sheet and trial balance: the date the report stands at (YYYY-MM-DD); today when left out"
6169
+ "description": "Trades on or after this YYYY-MM-DD day; 90 days before until when omitted"
4747
6170
  },
4748
- "from": {
6171
+ "until": {
4749
6172
  "type": "string",
4750
- "description": "Profit and loss: the first day of the period (YYYY-MM-DD)"
6173
+ "description": "Trades on or before this YYYY-MM-DD day; today when omitted"
4751
6174
  },
4752
- "to": {
6175
+ "type": {
4753
6176
  "type": "string",
4754
- "description": "Profit and loss: the last day of the period (YYYY-MM-DD)"
6177
+ "enum": [
6178
+ "buy",
6179
+ "sell",
6180
+ "contribution",
6181
+ "distribution",
6182
+ "capital_call",
6183
+ "income",
6184
+ "fee",
6185
+ "all"
6186
+ ],
6187
+ "default": "all",
6188
+ "description": "Only transactions of this type"
4755
6189
  }
4756
6190
  },
4757
6191
  "required": [
4758
6192
  "connection_id",
4759
- "type"
6193
+ "entity_id"
4760
6194
  ]
4761
6195
  },
4762
6196
  "example": {
4763
- "connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
4764
- "type": "balance_sheet",
4765
- "as_of": "2026-09-30"
6197
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6198
+ "limit": 25,
6199
+ "entity_id": "1001",
6200
+ "type": "capital_call",
6201
+ "since": "2026-10-01"
4766
6202
  }
4767
6203
  },
4768
6204
  {
4769
- "name": "linkedin_sync_run",
4770
- "method": "GET",
4771
- "path": "/v1/tools/linkedin/sync/{run_id}",
4772
- "paid": false,
6205
+ "name": "practice_appointments",
6206
+ "method": "POST",
6207
+ "path": "/v1/tools/practice/appointments",
6208
+ "paid": true,
4773
6209
  "readOnly": true,
4774
- "title": "LinkedIn Sync Run",
4775
- "description": "Read one LinkedIn history-sync run: its state, the pages and messages it fetched and why it ended. Free. The run id comes from oneshot_linkedin_sync or oneshot_linkedin_accounts with account_id.",
6210
+ "title": "Practice appointments",
6211
+ "description": "Read the practice schedule, patient and provider ids, times, operatory, type, confirmation and status. Required start and end instants must be at most 31 days apart. Related names may be null. Follow next_cursor even on empty filtered pages. Read Dentrix, Eaglesoft, Open Dental, Curve, Denticon, athenaOne, eClinicalWorks or Epic. Read-only; answered inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4776
6212
  "inputSchema": {
4777
6213
  "type": "object",
4778
6214
  "properties": {
4779
- "run_id": {
6215
+ "connection_id": {
4780
6216
  "type": "string",
4781
- "description": "Sync run id"
6217
+ "description": "The practice connection id from GET /v1/connections."
6218
+ },
6219
+ "limit": {
6220
+ "type": "integer",
6221
+ "minimum": 1,
6222
+ "maximum": 100,
6223
+ "default": 25
6224
+ },
6225
+ "cursor": {
6226
+ "type": "string",
6227
+ "description": "Opaque next_cursor with unchanged filters."
6228
+ },
6229
+ "starts_after": {
6230
+ "type": "string",
6231
+ "format": "date-time",
6232
+ "description": "Inclusive start instant with timezone."
6233
+ },
6234
+ "starts_before": {
6235
+ "type": "string",
6236
+ "format": "date-time",
6237
+ "description": "Exclusive end instant with timezone."
6238
+ },
6239
+ "patient_id": {
6240
+ "type": "string",
6241
+ "description": "The system record id."
6242
+ },
6243
+ "provider_id": {
6244
+ "type": "string",
6245
+ "description": "The system record id."
6246
+ },
6247
+ "status": {
6248
+ "type": "string",
6249
+ "enum": [
6250
+ "booked",
6251
+ "confirmed",
6252
+ "cancelled",
6253
+ "no_show",
6254
+ "completed",
6255
+ "all"
6256
+ ],
6257
+ "default": "all"
4782
6258
  }
4783
6259
  },
4784
6260
  "required": [
4785
- "run_id"
6261
+ "connection_id",
6262
+ "starts_after",
6263
+ "starts_before"
4786
6264
  ]
4787
6265
  },
4788
6266
  "example": {
4789
- "run_id": "run_01HX"
6267
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6268
+ "limit": 25,
6269
+ "starts_after": "2026-11-05T00:00:00Z",
6270
+ "starts_before": "2026-11-06T00:00:00Z"
4790
6271
  }
4791
6272
  },
4792
6273
  {
4793
- "name": "watch_list",
4794
- "method": "GET",
4795
- "path": "/v1/tools/watch",
4796
- "paid": false,
4797
- "readOnly": true,
4798
- "title": "List Watches",
4799
- "description": "List the agent's watches with their state, spend and the price of one change. Free.",
4800
- "inputSchema": {
4801
- "type": "object",
4802
- "properties": {},
4803
- "required": []
4804
- },
4805
- "example": {}
4806
- },
4807
- {
4808
- "name": "mailbox_attachment",
6274
+ "name": "practice_openings",
4809
6275
  "method": "POST",
4810
- "path": "/v1/tools/mailbox/attachment",
6276
+ "path": "/v1/tools/practice/openings",
4811
6277
  "paid": true,
4812
6278
  "readOnly": true,
4813
- "title": "Mailbox attachment",
4814
- "description": "Read content inline, at most 10 MB. Gmail supports attachments included in the message MIME payload; external attachments are not supported yet. Known oversized content is refused before payment. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6279
+ "title": "Practice openings",
6280
+ "description": "Find available appointment slots by provider and appointment type in a required window of at most 14 days. Without either filter, page through the practice providers; Epic needs patient_id and a service type. Related names may be null. Read Dentrix, Eaglesoft, Open Dental, Curve, Denticon, athenaOne, eClinicalWorks or Epic. Read-only; answered inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4815
6281
  "inputSchema": {
4816
6282
  "type": "object",
4817
6283
  "properties": {
4818
6284
  "connection_id": {
4819
6285
  "type": "string",
4820
- "format": "uuid",
4821
- "description": "List GET /v1/connections first and choose by system and account_label."
6286
+ "description": "The practice connection id from GET /v1/connections."
4822
6287
  },
4823
- "message_id": {
4824
- "type": "string"
6288
+ "limit": {
6289
+ "type": "integer",
6290
+ "minimum": 1,
6291
+ "maximum": 100,
6292
+ "default": 25
4825
6293
  },
4826
- "attachment_id": {
4827
- "type": "string"
6294
+ "cursor": {
6295
+ "type": "string",
6296
+ "description": "Opaque next_cursor with unchanged filters."
6297
+ },
6298
+ "starts_after": {
6299
+ "type": "string",
6300
+ "format": "date-time",
6301
+ "description": "Inclusive start instant with timezone."
6302
+ },
6303
+ "starts_before": {
6304
+ "type": "string",
6305
+ "format": "date-time",
6306
+ "description": "Exclusive end instant with timezone."
6307
+ },
6308
+ "provider_id": {
6309
+ "type": "string",
6310
+ "description": "The system record id."
6311
+ },
6312
+ "appointment_type_id": {
6313
+ "type": "string",
6314
+ "description": "The system record id; on Epic a service type code, or system|code."
6315
+ },
6316
+ "patient_id": {
6317
+ "type": "string",
6318
+ "description": "Required on Epic: the patient the openings are for."
4828
6319
  }
4829
6320
  },
4830
6321
  "required": [
4831
6322
  "connection_id",
4832
- "message_id",
4833
- "attachment_id"
6323
+ "starts_after",
6324
+ "starts_before"
4834
6325
  ]
4835
6326
  },
4836
6327
  "example": {
4837
- "connection_id": "00000000-0000-4000-8000-000000000001",
4838
- "message_id": "message-1",
4839
- "attachment_id": "attachment-1"
6328
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6329
+ "limit": 25,
6330
+ "starts_after": "2026-11-05T00:00:00Z",
6331
+ "starts_before": "2026-11-06T00:00:00Z"
4840
6332
  }
4841
6333
  },
4842
6334
  {
4843
- "name": "mailbox_messages",
6335
+ "name": "practice_patients",
4844
6336
  "method": "POST",
4845
- "path": "/v1/tools/mailbox/messages",
6337
+ "path": "/v1/tools/practice/patients",
4846
6338
  "paid": true,
4847
6339
  "readOnly": true,
4848
- "title": "Mailbox messages",
4849
- "description": "Search message snippets and attachment metadata on the chosen connection. At most 50 rows. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6340
+ "title": "Practice patients",
6341
+ "description": "Find patients by name, email, phone or id, updated time and overdue recall. Patient pages contain at most one patient to read recalls within the call limit. Follow next_cursor even on empty pages. Last visit and next appointment are null when unavailable. Read Dentrix, Eaglesoft, Open Dental, Curve, Denticon, athenaOne, eClinicalWorks or Epic. Read-only; answered inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4850
6342
  "inputSchema": {
4851
6343
  "type": "object",
4852
6344
  "properties": {
4853
6345
  "connection_id": {
4854
6346
  "type": "string",
4855
- "format": "uuid",
4856
- "description": "List GET /v1/connections first and choose by system and account_label."
4857
- },
4858
- "query": {
4859
- "type": "string",
4860
- "minLength": 1,
4861
- "maxLength": 500,
4862
- "description": "Required search text. Keep the same filters when paging."
6347
+ "description": "The practice connection id from GET /v1/connections."
4863
6348
  },
4864
6349
  "limit": {
4865
6350
  "type": "integer",
4866
6351
  "minimum": 1,
4867
- "maximum": 50,
6352
+ "maximum": 100,
4868
6353
  "default": 25
4869
6354
  },
4870
6355
  "cursor": {
4871
6356
  "type": "string",
4872
- "description": "The next_cursor from the previous page."
6357
+ "description": "Opaque next_cursor with unchanged filters."
4873
6358
  },
4874
- "from": {
6359
+ "query": {
4875
6360
  "type": "string",
4876
- "format": "date",
4877
- "description": "Inclusive received date, YYYY-MM-DD."
6361
+ "description": "Patient name, email or phone."
4878
6362
  },
4879
- "to": {
6363
+ "patient_id": {
4880
6364
  "type": "string",
4881
- "format": "date",
4882
- "description": "Inclusive received date, YYYY-MM-DD."
6365
+ "description": "The system record id."
4883
6366
  },
4884
- "sender": {
6367
+ "updated_since": {
4885
6368
  "type": "string",
4886
- "format": "email"
6369
+ "format": "date-time"
4887
6370
  },
4888
- "has_attachments": {
4889
- "type": "boolean"
6371
+ "due_for_recall": {
6372
+ "type": "boolean",
6373
+ "default": false,
6374
+ "description": "Only patients whose earliest recall is due before today (UTC)."
4890
6375
  }
4891
6376
  },
4892
6377
  "required": [
4893
- "connection_id",
4894
- "query",
4895
- "from",
4896
- "to"
6378
+ "connection_id"
4897
6379
  ]
4898
6380
  },
4899
6381
  "example": {
4900
- "connection_id": "00000000-0000-4000-8000-000000000001",
4901
- "query": "invoice",
4902
- "from": "2026-10-01",
4903
- "to": "2026-10-31",
6382
+ "connection_id": "11111111-1111-4111-8111-111111111111",
4904
6383
  "limit": 25
4905
6384
  }
4906
6385
  },
4907
6386
  {
4908
- "name": "notifications_mark_all_read",
4909
- "method": "PATCH",
4910
- "path": "/v1/tools/notifications/read-all",
4911
- "paid": false,
4912
- "readOnly": false,
4913
- "title": "Mark All Notifications Read",
4914
- "description": "Mark every notification of this agent as read. Free. Mark a single one with oneshot_mark_notification_read.",
4915
- "inputSchema": {
4916
- "type": "object",
4917
- "properties": {},
4918
- "required": []
4919
- },
4920
- "example": {}
4921
- },
4922
- {
4923
- "name": "meetings_get",
6387
+ "name": "practice_providers",
4924
6388
  "method": "POST",
4925
- "path": "/v1/tools/meetings/get",
6389
+ "path": "/v1/tools/practice/providers",
4926
6390
  "paid": true,
4927
6391
  "readOnly": true,
4928
- "title": "Meetings get",
4929
- "description": "One meeting from the customer's connected meeting recorder: its summary and action items, and its transcript only when asked for. Read-only; returned inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6392
+ "title": "Practice providers",
6393
+ "description": "Find practice providers by name, with specialty, bookability at the connected location and appointment types and durations. Read Dentrix, Eaglesoft, Open Dental, Curve, Denticon, athenaOne, eClinicalWorks or Epic. Read-only; answered inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4930
6394
  "inputSchema": {
4931
6395
  "type": "object",
4932
6396
  "properties": {
4933
6397
  "connection_id": {
4934
6398
  "type": "string",
4935
- "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
6399
+ "description": "The practice connection id from GET /v1/connections."
4936
6400
  },
4937
- "meeting_id": {
6401
+ "limit": {
6402
+ "type": "integer",
6403
+ "minimum": 1,
6404
+ "maximum": 100,
6405
+ "default": 25
6406
+ },
6407
+ "cursor": {
4938
6408
  "type": "string",
4939
- "description": "The id of the meeting, as meetings_list answers it"
6409
+ "description": "Opaque next_cursor with unchanged filters."
4940
6410
  },
4941
- "include": {
4942
- "type": "array",
4943
- "items": {
4944
- "type": "string",
4945
- "enum": [
4946
- "summary",
4947
- "action_items",
4948
- "transcript"
4949
- ]
4950
- },
4951
- "description": "What to read besides the meeting itself (default summary and action_items); the transcript only when asked for"
6411
+ "query": {
6412
+ "type": "string"
4952
6413
  }
4953
6414
  },
4954
6415
  "required": [
4955
- "connection_id",
4956
- "meeting_id"
6416
+ "connection_id"
4957
6417
  ]
4958
6418
  },
4959
6419
  "example": {
4960
- "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
4961
- "meeting_id": "0dba4400-0000-4000-8000-000000000001",
4962
- "include": [
4963
- "summary",
4964
- "action_items"
4965
- ]
6420
+ "connection_id": "11111111-1111-4111-8111-111111111111",
6421
+ "limit": 25
4966
6422
  }
4967
6423
  },
4968
6424
  {
4969
- "name": "meetings_list",
6425
+ "name": "practice_treatment_plans",
4970
6426
  "method": "POST",
4971
- "path": "/v1/tools/meetings/list",
6427
+ "path": "/v1/tools/practice/treatment-plans",
4972
6428
  "paid": true,
4973
6429
  "readOnly": true,
4974
- "title": "Meetings list",
4975
- "description": "Meetings recorded by the customer's connected meeting recorder, with title, start, duration and participants, filtered by start day and by title or participant. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
6430
+ "title": "Practice treatment plans",
6431
+ "description": "Read treatment plans and their procedures by patient, status, update time or plan id. Dates are the plan update time and procedure start and end dates, never diagnosis dates. Financing approval and remaining insurance benefits are unavailable. Follow next_cursor even on empty filtered pages. Read-only; answered inline and never stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
4976
6432
  "inputSchema": {
4977
6433
  "type": "object",
4978
6434
  "properties": {
4979
6435
  "connection_id": {
4980
6436
  "type": "string",
4981
- "description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
6437
+ "description": "The practice connection id from GET /v1/connections."
4982
6438
  },
4983
- "since": {
6439
+ "limit": {
6440
+ "type": "integer",
6441
+ "minimum": 1,
6442
+ "maximum": 100,
6443
+ "default": 25
6444
+ },
6445
+ "cursor": {
4984
6446
  "type": "string",
4985
- "description": "Meetings that started on or after this day (YYYY-MM-DD, UTC)"
6447
+ "description": "Opaque next_cursor with unchanged filters."
4986
6448
  },
4987
- "query": {
6449
+ "patient_id": {
4988
6450
  "type": "string",
4989
- "description": "Meetings whose title, or a participant's name or email, contains this text (any case)"
6451
+ "description": "The system patient id."
4990
6452
  },
4991
- "limit": {
4992
- "type": "integer",
4993
- "description": "Meetings per page, 1 to 100 (default 25)"
6453
+ "status": {
6454
+ "type": "string",
6455
+ "enum": [
6456
+ "not_applicable",
6457
+ "proposed",
6458
+ "accepted",
6459
+ "rejected",
6460
+ "completed"
6461
+ ]
4994
6462
  },
4995
- "cursor": {
6463
+ "updated_since": {
4996
6464
  "type": "string",
4997
- "description": "The next_cursor of the previous page"
6465
+ "format": "date-time",
6466
+ "description": "Inclusive plan update time, not a diagnosis date."
6467
+ },
6468
+ "plan_id": {
6469
+ "type": "string",
6470
+ "description": "Read one plan by its system id; other filters still apply."
4998
6471
  }
4999
6472
  },
5000
6473
  "required": [
@@ -5002,9 +6475,7 @@ export const ROUTE_MANIFEST = [
5002
6475
  ]
5003
6476
  },
5004
6477
  "example": {
5005
- "connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
5006
- "since": "2026-10-01",
5007
- "query": "client",
6478
+ "connection_id": "11111111-1111-4111-8111-111111111111",
5008
6479
  "limit": 25
5009
6480
  }
5010
6481
  },
@@ -5227,6 +6698,67 @@ export const ROUTE_MANIFEST = [
5227
6698
  "limit": 25
5228
6699
  }
5229
6700
  },
6701
+ {
6702
+ "name": "company_radio_licenses",
6703
+ "method": "POST",
6704
+ "path": "/v1/tools/lookup/company-radio-licenses",
6705
+ "paid": true,
6706
+ "readOnly": true,
6707
+ "title": "Radio Licenses",
6708
+ "description": "Find a company's active radio licences by FRN, call sign or exact folded legal name. For example, “Which paging licences does AMS Spectrum Holdings hold?” or “Find spectrum licences for a company's radio fleet; company_contractor_license covers trade credentials.” Returns call signs, services, status, dates and business licensee details. Active company FCC licences in private and commercial land mobile, microwave, market-based spectrum, cellular and paging services, loaded from weekly complete files. Individual licensees are excluded. Records with no company name and malformed records are also excluded. No match says nothing about other services or expired licences.",
6709
+ "inputSchema": {
6710
+ "type": "object",
6711
+ "properties": {
6712
+ "frn": {
6713
+ "type": "string",
6714
+ "pattern": "^[0-9]{10}$",
6715
+ "description": "FCC Registration Number, exactly ten digits; supply exactly one identifier"
6716
+ },
6717
+ "call_sign": {
6718
+ "type": "string",
6719
+ "description": "FCC call sign; supply exactly one identifier"
6720
+ },
6721
+ "licensee_name": {
6722
+ "type": "string",
6723
+ "description": "Exact legal name after case, punctuation and legal suffix folding; supply exactly one identifier"
6724
+ },
6725
+ "service": {
6726
+ "type": "string",
6727
+ "enum": [
6728
+ "LMpriv",
6729
+ "LMcomm",
6730
+ "micro",
6731
+ "market",
6732
+ "cell",
6733
+ "paging"
6734
+ ],
6735
+ "description": "Weekly service file to search; omit to check all six"
6736
+ },
6737
+ "expiring_before": {
6738
+ "type": "string",
6739
+ "format": "date",
6740
+ "description": "Expiration strictly before this real YYYY-MM-DD date"
6741
+ },
6742
+ "limit": {
6743
+ "type": "integer",
6744
+ "minimum": 1,
6745
+ "maximum": 100,
6746
+ "description": "Page size, default 50"
6747
+ },
6748
+ "offset": {
6749
+ "type": "integer",
6750
+ "minimum": 0,
6751
+ "maximum": 10000,
6752
+ "description": "Results to skip, default 0"
6753
+ }
6754
+ },
6755
+ "required": []
6756
+ },
6757
+ "example": {
6758
+ "frn": "0019131390",
6759
+ "service": "paging"
6760
+ }
6761
+ },
5230
6762
  {
5231
6763
  "name": "physical_mail_recover",
5232
6764
  "method": "GET",
@@ -5723,6 +7255,52 @@ export const ROUTE_MANIFEST = [
5723
7255
  "address_zip": "94107"
5724
7256
  }
5725
7257
  },
7258
+ {
7259
+ "name": "company_visa_sponsorship",
7260
+ "method": "POST",
7261
+ "path": "/v1/tools/lookup/company-visa-sponsorship",
7262
+ "paid": true,
7263
+ "readOnly": true,
7264
+ "title": "Visa Sponsorship",
7265
+ "description": "Look up whether a US employer sponsors foreign workers, by employer name or FEIN: its H-1B, H-1B1 and E-3 labor condition applications and PERM labor certifications as decided by the Department of Labor, with job titles, SOC codes, worksites, offered and prevailing wages, case status and decision dates, and counts by fiscal year, program, visa class and status. For example, “Does Airbus Americas sponsor H-1B workers, for which jobs and at what wages?” or “List the PERM certifications the employer with FEIN 13-3243459 obtained”, where market_federal_labor_rates prices federal contract labor and says nothing about sponsorship. Quarterly OFLC disclosure files, cumulative for the federal fiscal year and posted five to six weeks after each quarter: every H-1B, H-1B1 and E-3 labor condition application (LCA) and every PERM labor certification decided through the quarter of each loaded file, one record per case with its latest decision. The current quarter’s decisions arrive with the next file. Attorney, agent and employer contact names, emails, phones and street addresses are excluded.",
7266
+ "inputSchema": {
7267
+ "type": "object",
7268
+ "properties": {
7269
+ "employer_name": {
7270
+ "type": "string",
7271
+ "description": "Employer name as filed; case, punctuation and a trailing legal suffix are ignored. Supply either employer_name or fein"
7272
+ },
7273
+ "fein": {
7274
+ "type": "string",
7275
+ "description": "Employer identification number, NN-NNNNNNN. Supply either fein or employer_name"
7276
+ },
7277
+ "program": {
7278
+ "type": "string",
7279
+ "description": "LCA (H-1B, H-1B1, E-3 labor condition applications) or PERM (permanent labor certifications)"
7280
+ },
7281
+ "fiscal_year": {
7282
+ "type": "integer",
7283
+ "description": "Federal fiscal year of the decision, such as 2026"
7284
+ },
7285
+ "state": {
7286
+ "type": "string",
7287
+ "description": "Two-letter worksite state"
7288
+ },
7289
+ "limit": {
7290
+ "type": "integer",
7291
+ "description": "Page size, 1-100, default 25"
7292
+ },
7293
+ "offset": {
7294
+ "type": "integer",
7295
+ "description": "Filings to skip, 0-10000, default 0"
7296
+ }
7297
+ },
7298
+ "required": []
7299
+ },
7300
+ "example": {
7301
+ "fein": "13-3243459"
7302
+ }
7303
+ },
5726
7304
  {
5727
7305
  "name": "watch",
5728
7306
  "method": "POST",