@starascendin/lifeos-mcp 0.7.50 → 0.7.52
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.
- package/README.md +17 -0
- package/dist/build-info.d.ts +2 -2
- package/dist/build-info.js +2 -2
- package/dist/index.js +304 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -121,9 +121,26 @@ Add to your `.mcp.json` (project root or `~/.claude/mcp.json`):
|
|
|
121
121
|
- **get_clients** - List all clients
|
|
122
122
|
- **get_client** - Get client details
|
|
123
123
|
- **get_projects_for_client** - Get client's projects
|
|
124
|
+
- **get_client_notes** - List client/project/phase notes
|
|
125
|
+
- **get_client_note** - Get one client note with linked context
|
|
126
|
+
- **create_client_note** - Save requirement or account notes
|
|
127
|
+
- **update_client_note** - Update client notes
|
|
124
128
|
- **create_client** - Create a new client
|
|
125
129
|
- **update_client** - Update client details
|
|
126
130
|
|
|
131
|
+
### Meetings
|
|
132
|
+
- **get_fathom_meetings** - List synced Fathom meetings
|
|
133
|
+
- **get_fathom_meeting** - Get Fathom meeting details
|
|
134
|
+
- **get_fathom_transcript** - Get full Fathom transcript
|
|
135
|
+
- **search_fathom_meetings** - Search Fathom meetings
|
|
136
|
+
- **get_granola_meetings** - List synced Granola meetings
|
|
137
|
+
- **get_granola_meeting** - Get Granola meeting details
|
|
138
|
+
- **get_granola_transcript** - Get full Granola transcript
|
|
139
|
+
|
|
140
|
+
### CRM / Customer Success
|
|
141
|
+
- **get_business_contacts** - List business-marked Beeper threads with linked contact/client info
|
|
142
|
+
- **get_client_success_workspace** - Load one client's chats, meetings, notes, projects, and open work in one call
|
|
143
|
+
|
|
127
144
|
## Shared Council Architecture
|
|
128
145
|
|
|
129
146
|
`run_council` calls the Convex `POST /council-skill` endpoint. That is the same shared council core used by:
|
package/dist/build-info.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.7.
|
|
2
|
-
export declare const BUILD_TIME = "2026-03-
|
|
1
|
+
export declare const VERSION = "0.7.52";
|
|
2
|
+
export declare const BUILD_TIME = "2026-03-09T17:02:07.718Z";
|
package/dist/build-info.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// AUTO-GENERATED — do not edit. Regenerated on every build.
|
|
2
|
-
export const VERSION = "0.7.
|
|
3
|
-
export const BUILD_TIME = "2026-03-
|
|
2
|
+
export const VERSION = "0.7.52";
|
|
3
|
+
export const BUILD_TIME = "2026-03-09T17:02:07.718Z";
|
package/dist/index.js
CHANGED
|
@@ -1388,6 +1388,143 @@ const TOOLS = [
|
|
|
1388
1388
|
required: ["clientId"],
|
|
1389
1389
|
},
|
|
1390
1390
|
},
|
|
1391
|
+
{
|
|
1392
|
+
name: "get_client_notes",
|
|
1393
|
+
description: "Get client/project/phase notes for customer requirements and account context.",
|
|
1394
|
+
inputSchema: {
|
|
1395
|
+
type: "object",
|
|
1396
|
+
properties: {
|
|
1397
|
+
userId: {
|
|
1398
|
+
type: "string",
|
|
1399
|
+
description: "Override the default user ID (optional)",
|
|
1400
|
+
},
|
|
1401
|
+
clientId: {
|
|
1402
|
+
type: "string",
|
|
1403
|
+
description: "Filter by client ID (optional)",
|
|
1404
|
+
},
|
|
1405
|
+
projectId: {
|
|
1406
|
+
type: "string",
|
|
1407
|
+
description: "Filter by project ID (optional)",
|
|
1408
|
+
},
|
|
1409
|
+
phaseId: {
|
|
1410
|
+
type: "string",
|
|
1411
|
+
description: "Filter by phase ID (optional)",
|
|
1412
|
+
},
|
|
1413
|
+
limit: {
|
|
1414
|
+
type: "number",
|
|
1415
|
+
description: "Max results (default 20, max 100)",
|
|
1416
|
+
},
|
|
1417
|
+
},
|
|
1418
|
+
},
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
name: "get_client_note",
|
|
1422
|
+
description: "Get a single client/project/phase note with linked context.",
|
|
1423
|
+
inputSchema: {
|
|
1424
|
+
type: "object",
|
|
1425
|
+
properties: {
|
|
1426
|
+
userId: {
|
|
1427
|
+
type: "string",
|
|
1428
|
+
description: "Override the default user ID (optional)",
|
|
1429
|
+
},
|
|
1430
|
+
noteId: {
|
|
1431
|
+
type: "string",
|
|
1432
|
+
description: "The note ID (required)",
|
|
1433
|
+
},
|
|
1434
|
+
},
|
|
1435
|
+
required: ["noteId"],
|
|
1436
|
+
},
|
|
1437
|
+
},
|
|
1438
|
+
{
|
|
1439
|
+
name: "create_client_note",
|
|
1440
|
+
description: "Create a note for a client, project, or phase to track customer requirements and follow-ups.",
|
|
1441
|
+
inputSchema: {
|
|
1442
|
+
type: "object",
|
|
1443
|
+
properties: {
|
|
1444
|
+
userId: {
|
|
1445
|
+
type: "string",
|
|
1446
|
+
description: "Override the default user ID (optional)",
|
|
1447
|
+
},
|
|
1448
|
+
title: {
|
|
1449
|
+
type: "string",
|
|
1450
|
+
description: "Short note title (required)",
|
|
1451
|
+
},
|
|
1452
|
+
content: {
|
|
1453
|
+
type: "string",
|
|
1454
|
+
description: "Note content (required)",
|
|
1455
|
+
},
|
|
1456
|
+
clientId: {
|
|
1457
|
+
type: "string",
|
|
1458
|
+
description: "Link to a client (optional)",
|
|
1459
|
+
},
|
|
1460
|
+
projectId: {
|
|
1461
|
+
type: "string",
|
|
1462
|
+
description: "Link to a project (optional)",
|
|
1463
|
+
},
|
|
1464
|
+
phaseId: {
|
|
1465
|
+
type: "string",
|
|
1466
|
+
description: "Link to a phase (optional)",
|
|
1467
|
+
},
|
|
1468
|
+
},
|
|
1469
|
+
required: ["title", "content"],
|
|
1470
|
+
},
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
name: "update_client_note",
|
|
1474
|
+
description: "Update an existing client/project/phase note.",
|
|
1475
|
+
inputSchema: {
|
|
1476
|
+
type: "object",
|
|
1477
|
+
properties: {
|
|
1478
|
+
userId: {
|
|
1479
|
+
type: "string",
|
|
1480
|
+
description: "Override the default user ID (optional)",
|
|
1481
|
+
},
|
|
1482
|
+
noteId: {
|
|
1483
|
+
type: "string",
|
|
1484
|
+
description: "The note ID (required)",
|
|
1485
|
+
},
|
|
1486
|
+
title: {
|
|
1487
|
+
type: "string",
|
|
1488
|
+
description: "Updated title (optional)",
|
|
1489
|
+
},
|
|
1490
|
+
content: {
|
|
1491
|
+
type: "string",
|
|
1492
|
+
description: "Updated content (optional)",
|
|
1493
|
+
},
|
|
1494
|
+
clientId: {
|
|
1495
|
+
type: "string",
|
|
1496
|
+
description: "Updated client ID, or empty to unlink (optional)",
|
|
1497
|
+
},
|
|
1498
|
+
projectId: {
|
|
1499
|
+
type: "string",
|
|
1500
|
+
description: "Updated project ID, or empty to unlink (optional)",
|
|
1501
|
+
},
|
|
1502
|
+
phaseId: {
|
|
1503
|
+
type: "string",
|
|
1504
|
+
description: "Updated phase ID, or empty to unlink (optional)",
|
|
1505
|
+
},
|
|
1506
|
+
},
|
|
1507
|
+
required: ["noteId"],
|
|
1508
|
+
},
|
|
1509
|
+
},
|
|
1510
|
+
{
|
|
1511
|
+
name: "delete_client_note",
|
|
1512
|
+
description: "Delete a client/project/phase note.",
|
|
1513
|
+
inputSchema: {
|
|
1514
|
+
type: "object",
|
|
1515
|
+
properties: {
|
|
1516
|
+
userId: {
|
|
1517
|
+
type: "string",
|
|
1518
|
+
description: "Override the default user ID (optional)",
|
|
1519
|
+
},
|
|
1520
|
+
noteId: {
|
|
1521
|
+
type: "string",
|
|
1522
|
+
description: "The note ID (required)",
|
|
1523
|
+
},
|
|
1524
|
+
},
|
|
1525
|
+
required: ["noteId"],
|
|
1526
|
+
},
|
|
1527
|
+
},
|
|
1391
1528
|
{
|
|
1392
1529
|
name: "create_client",
|
|
1393
1530
|
description: "Create a new client for consulting/freelance work.",
|
|
@@ -1722,6 +1859,82 @@ const TOOLS = [
|
|
|
1722
1859
|
required: ["clientId"],
|
|
1723
1860
|
},
|
|
1724
1861
|
},
|
|
1862
|
+
// Fathom Meeting Tools
|
|
1863
|
+
{
|
|
1864
|
+
name: "get_fathom_meetings",
|
|
1865
|
+
description: "List all synced Fathom meeting notes and recordings.",
|
|
1866
|
+
inputSchema: {
|
|
1867
|
+
type: "object",
|
|
1868
|
+
properties: {
|
|
1869
|
+
userId: {
|
|
1870
|
+
type: "string",
|
|
1871
|
+
description: "Override the default user ID (optional)",
|
|
1872
|
+
},
|
|
1873
|
+
limit: {
|
|
1874
|
+
type: "number",
|
|
1875
|
+
description: "Max results (default 50)",
|
|
1876
|
+
},
|
|
1877
|
+
},
|
|
1878
|
+
},
|
|
1879
|
+
},
|
|
1880
|
+
{
|
|
1881
|
+
name: "get_fathom_meeting",
|
|
1882
|
+
description: "Get a single Fathom meeting by its Convex meeting ID, including AI summary and action items.",
|
|
1883
|
+
inputSchema: {
|
|
1884
|
+
type: "object",
|
|
1885
|
+
properties: {
|
|
1886
|
+
userId: {
|
|
1887
|
+
type: "string",
|
|
1888
|
+
description: "Override the default user ID (optional)",
|
|
1889
|
+
},
|
|
1890
|
+
meetingId: {
|
|
1891
|
+
type: "string",
|
|
1892
|
+
description: "The Fathom meeting ID (required)",
|
|
1893
|
+
},
|
|
1894
|
+
},
|
|
1895
|
+
required: ["meetingId"],
|
|
1896
|
+
},
|
|
1897
|
+
},
|
|
1898
|
+
{
|
|
1899
|
+
name: "get_fathom_transcript",
|
|
1900
|
+
description: "Get the full transcript for a Fathom meeting.",
|
|
1901
|
+
inputSchema: {
|
|
1902
|
+
type: "object",
|
|
1903
|
+
properties: {
|
|
1904
|
+
userId: {
|
|
1905
|
+
type: "string",
|
|
1906
|
+
description: "Override the default user ID (optional)",
|
|
1907
|
+
},
|
|
1908
|
+
meetingId: {
|
|
1909
|
+
type: "string",
|
|
1910
|
+
description: "The Fathom meeting ID (required)",
|
|
1911
|
+
},
|
|
1912
|
+
},
|
|
1913
|
+
required: ["meetingId"],
|
|
1914
|
+
},
|
|
1915
|
+
},
|
|
1916
|
+
{
|
|
1917
|
+
name: "search_fathom_meetings",
|
|
1918
|
+
description: "Search Fathom meetings by title or summary content.",
|
|
1919
|
+
inputSchema: {
|
|
1920
|
+
type: "object",
|
|
1921
|
+
properties: {
|
|
1922
|
+
userId: {
|
|
1923
|
+
type: "string",
|
|
1924
|
+
description: "Override the default user ID (optional)",
|
|
1925
|
+
},
|
|
1926
|
+
query: {
|
|
1927
|
+
type: "string",
|
|
1928
|
+
description: "Search terms to find in Fathom meetings (required)",
|
|
1929
|
+
},
|
|
1930
|
+
limit: {
|
|
1931
|
+
type: "number",
|
|
1932
|
+
description: "Max results (default 20)",
|
|
1933
|
+
},
|
|
1934
|
+
},
|
|
1935
|
+
required: ["query"],
|
|
1936
|
+
},
|
|
1937
|
+
},
|
|
1725
1938
|
// Granola Meeting Tools
|
|
1726
1939
|
{
|
|
1727
1940
|
name: "get_granola_meetings",
|
|
@@ -1937,6 +2150,40 @@ const TOOLS = [
|
|
|
1937
2150
|
},
|
|
1938
2151
|
},
|
|
1939
2152
|
},
|
|
2153
|
+
{
|
|
2154
|
+
name: "get_client_success_workspace",
|
|
2155
|
+
description: "Load a customer success workspace for one client: projects, open work, linked chats, meetings, and notes in one call.",
|
|
2156
|
+
inputSchema: {
|
|
2157
|
+
type: "object",
|
|
2158
|
+
properties: {
|
|
2159
|
+
userId: {
|
|
2160
|
+
type: "string",
|
|
2161
|
+
description: "Override the default user ID (optional)",
|
|
2162
|
+
},
|
|
2163
|
+
clientIdOrName: {
|
|
2164
|
+
type: "string",
|
|
2165
|
+
description: "Client ID or client name (required)",
|
|
2166
|
+
},
|
|
2167
|
+
messageLimit: {
|
|
2168
|
+
type: "number",
|
|
2169
|
+
description: "Recent messages to include per linked thread (default 5, max 20)",
|
|
2170
|
+
},
|
|
2171
|
+
meetingLimit: {
|
|
2172
|
+
type: "number",
|
|
2173
|
+
description: "Meetings to include across Granola and Fathom (default 10, max 30)",
|
|
2174
|
+
},
|
|
2175
|
+
noteLimit: {
|
|
2176
|
+
type: "number",
|
|
2177
|
+
description: "Notes to include (default 10, max 50)",
|
|
2178
|
+
},
|
|
2179
|
+
openTaskLimit: {
|
|
2180
|
+
type: "number",
|
|
2181
|
+
description: "Open tasks to include (default 25, max 100)",
|
|
2182
|
+
},
|
|
2183
|
+
},
|
|
2184
|
+
required: ["clientIdOrName"],
|
|
2185
|
+
},
|
|
2186
|
+
},
|
|
1940
2187
|
{
|
|
1941
2188
|
name: "get_merge_suggestions",
|
|
1942
2189
|
description: "Get pending contact merge suggestions. Returns pairs of contacts that may be duplicates based on matching email, phone, or name similarity.",
|
|
@@ -4434,6 +4681,22 @@ const PROMPTS = [
|
|
|
4434
4681
|
},
|
|
4435
4682
|
],
|
|
4436
4683
|
},
|
|
4684
|
+
{
|
|
4685
|
+
name: "customer-success-triage",
|
|
4686
|
+
description: "Triage a client request using business chats, Fathom/Granola meetings, notes, and open work.",
|
|
4687
|
+
arguments: [
|
|
4688
|
+
{
|
|
4689
|
+
name: "client",
|
|
4690
|
+
description: "Client name or ID (required)",
|
|
4691
|
+
required: true,
|
|
4692
|
+
},
|
|
4693
|
+
{
|
|
4694
|
+
name: "focus",
|
|
4695
|
+
description: "Optional focus area, like a feature request, escalation, or meeting topic",
|
|
4696
|
+
required: false,
|
|
4697
|
+
},
|
|
4698
|
+
],
|
|
4699
|
+
},
|
|
4437
4700
|
{
|
|
4438
4701
|
name: "project-status",
|
|
4439
4702
|
description: "Project status report: phases, task breakdown, blockers, urgent items.",
|
|
@@ -4805,6 +5068,47 @@ Present as a client brief:
|
|
|
4805
5068
|
},
|
|
4806
5069
|
},
|
|
4807
5070
|
],
|
|
5071
|
+
"customer-success-triage": (args) => {
|
|
5072
|
+
const focusClause = args.focus
|
|
5073
|
+
? `\n\nFocus area: ${args.focus}`
|
|
5074
|
+
: "";
|
|
5075
|
+
return [
|
|
5076
|
+
{
|
|
5077
|
+
role: "user",
|
|
5078
|
+
content: {
|
|
5079
|
+
type: "text",
|
|
5080
|
+
text: `Triage customer success work for "${args.client}". Use the LifeOS MCP tools:
|
|
5081
|
+
|
|
5082
|
+
1. Call get_client_success_workspace with clientIdOrName "${args.client}"
|
|
5083
|
+
2. Review recentThreads, recentMeetings, notes, openTasks, and projects from that workspace
|
|
5084
|
+
3. If any thread needs deeper inspection, call get_beeper_thread_messages for the relevant thread
|
|
5085
|
+
4. If any meeting needs deeper inspection:
|
|
5086
|
+
- For Fathom, call get_fathom_meeting and optionally get_fathom_transcript
|
|
5087
|
+
- For Granola, call get_granola_meeting and optionally get_granola_transcript
|
|
5088
|
+
5. If there is already requirement history, call get_client_notes for the client
|
|
5089
|
+
|
|
5090
|
+
Classify what you find into:
|
|
5091
|
+
- **New Requirements**: Net-new asks or requested changes
|
|
5092
|
+
- **Follow-Ups**: Things waiting on you or the team
|
|
5093
|
+
- **Delivery Risks**: Blockers, overdue work, ambiguous asks, churn risk
|
|
5094
|
+
- **Existing Tracking**: Open tasks or notes already covering the request
|
|
5095
|
+
|
|
5096
|
+
For each item, recommend the next tracking action:
|
|
5097
|
+
- Use create_client_note to save requirement summaries, meeting recaps, or decisions
|
|
5098
|
+
- Use create_issue for implementation work or follow-up tasks
|
|
5099
|
+
- Use update_issue if an existing task should be re-scoped or reprioritized
|
|
5100
|
+
|
|
5101
|
+
Present the result as:
|
|
5102
|
+
- **Situation Summary**: What the client currently needs
|
|
5103
|
+
- **Evidence**: Supporting messages/meetings/notes
|
|
5104
|
+
- **Tracking Plan**: What should be captured as notes vs. tasks
|
|
5105
|
+
- **Next Actions**: Concrete owner/action/deadline suggestions
|
|
5106
|
+
|
|
5107
|
+
Ask for confirmation before any write operations unless I explicitly told you to make changes.${focusClause}`,
|
|
5108
|
+
},
|
|
5109
|
+
},
|
|
5110
|
+
];
|
|
5111
|
+
},
|
|
4808
5112
|
"project-status": (args) => [
|
|
4809
5113
|
{
|
|
4810
5114
|
role: "user",
|
package/package.json
CHANGED