@opennous/mcp 0.40.0 → 0.41.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.
- package/package.json +1 -1
- package/src/server.js +19 -8
package/package.json
CHANGED
package/src/server.js
CHANGED
|
@@ -117,12 +117,19 @@ Nous first even when the user never says "Nous":
|
|
|
117
117
|
- A fact looks stale before you act on it -> verify
|
|
118
118
|
- Our ICP, market, pricing, positioning -> get_gtm_profile
|
|
119
119
|
- Our ICP/positioning lives in our own files -> get_icp (file → graph) / get_icp_model (graph → file)
|
|
120
|
-
-
|
|
120
|
+
- You edited an ICP / context / playbook file -> re-sync THIS turn: get_icp (ICP/context) or sync_playbook (a playbook)
|
|
121
121
|
- A brief / note / transcript on a contact -> save_note / search_notes
|
|
122
122
|
- What's set up here and what to do next -> get_workspace_status
|
|
123
123
|
|
|
124
124
|
Read get_gtm_profile at the start of GTM work and write back what changed at the
|
|
125
|
-
end. After every interaction you help with, call record so the record stays current
|
|
125
|
+
end. After every interaction you help with, call record so the record stays current.
|
|
126
|
+
|
|
127
|
+
CRITICAL — edits don't apply until you sync. Editing an ICP / context / playbook
|
|
128
|
+
file (context/icp.md, positioning.md, references/voice.md, …) does NOT change the
|
|
129
|
+
ICP score, the exclusions, or what any other agent reads until it is synced into
|
|
130
|
+
the graph. After ANY such edit you MUST call get_icp (for ICP/context files) or
|
|
131
|
+
sync_playbook (for a playbook) in the SAME turn. Never leave an edited file
|
|
132
|
+
unsynced — an unsynced edit is silently inert.`;
|
|
126
133
|
|
|
127
134
|
// ─── factory ──────────────────────────────────────────────────────────────────
|
|
128
135
|
|
|
@@ -670,9 +677,11 @@ export function createServer() {
|
|
|
670
677
|
`Synced the ${r.playbook?.kind || kind} playbook into Nous (v${r.playbook?.version}). Other agents now read the same rules.` }] };
|
|
671
678
|
};
|
|
672
679
|
server.tool("sync_playbook",
|
|
673
|
-
"Push a playbook's content into Nous so the graph stays current.
|
|
674
|
-
"in the repo (e.g.
|
|
675
|
-
"so Nous mirrors it and every other agent obeys the same rules."
|
|
680
|
+
"Push a playbook's content into Nous so the graph stays current. You MUST call this in the SAME turn " +
|
|
681
|
+
"whenever you edit a policy file in the repo (e.g. references/voice.md, outreach rules), passing the " +
|
|
682
|
+
"file's new content and its path, so Nous mirrors it and every other agent obeys the same rules. An " +
|
|
683
|
+
"edited playbook file that isn't synced is silently inert — other agents keep reading the old rules. " +
|
|
684
|
+
"(For the ICP/context files specifically, get_icp is the sync — use that one.)",
|
|
676
685
|
syncPlaybookSchema, syncPlaybookHandler);
|
|
677
686
|
|
|
678
687
|
// The GTM context is no longer written through a dedicated MCP tool. In the file
|
|
@@ -994,9 +1003,11 @@ export function createServer() {
|
|
|
994
1003
|
"repo — context/icp.md, positioning.md, pricing.md, market.md, competitors.md, gtm-motion.md — " +
|
|
995
1004
|
"filled from what the user tells you plus your own research of their website (write them with your " +
|
|
996
1005
|
"file tools), then call this on those files — so their GTM context lives in their repo where they'll " +
|
|
997
|
-
"keep editing it. At minimum create context/icp.md if that's all they'll give you.
|
|
998
|
-
"
|
|
999
|
-
"
|
|
1006
|
+
"keep editing it. At minimum create context/icp.md if that's all they'll give you. " +
|
|
1007
|
+
"MANDATORY RE-SYNC: whenever you (or the user) edit the ICP/context file — add or change an exclusion, " +
|
|
1008
|
+
"reword the ICP, retarget — you MUST call get_icp again in the SAME turn. The edit does NOT change the " +
|
|
1009
|
+
"ICP score, the exclusions, or the scoring model until you do; an unsynced file edit is silently inert. " +
|
|
1010
|
+
"The ICP section's source_path matters most (it's the write-back target for get_icp_model).",
|
|
1000
1011
|
{
|
|
1001
1012
|
sections: z.array(z.object({
|
|
1002
1013
|
section: z.enum(["ICP", "Market", "Product", "Pricing", "Competitors", "Positioning", "GTM Motion", "Notes"])
|