vantage-peers-mcp 2.4.3 → 2.4.6
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 +2 -0
- package/dist/src/tools.js +13 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ MCP server for [VantagePeers](https://vantagepeers.com) — shared memory, messa
|
|
|
9
9
|
|
|
10
10
|
84 tools across 18 categories: memory, profiles, tasks, missions, mission templates, messages, diary, briefing notes, search (RAG), issues, fix patterns, error monitoring, deployments, business units, components, mandates, recurring tasks, and session. All tools ship with ChatGPT Apps SDK annotations (`readOnlyHint`, `openWorldHint`, `destructiveHint`) for native UX in ChatGPT custom connectors.
|
|
11
11
|
|
|
12
|
+
**Companion plugin — 32 skills (target v2.7.0):** the `vantage-peers` Claude Code plugin wraps these 84 tools with 32 high-level skills split across three phases — Phase A (11 skills, v2.5.0): `dispatch-message`, `dispatch-task-create`, `dispatch-task-complete`, `dispatch-task-start`, `dispatch-subagent`, `identity-set`, `mission-bootstrap`, `check-messages` v5.1, `check-tasks` v2, `daily-start` v3, `close-day` v2 — Phase B (10 skills, v2.6.0): `memory-write`, `briefing-write`, `mission-template-apply`, `task-structure`, `component-register`, `component-discover`, `issue-triage`, `fix-pattern-cycle`, `episode-log`, `recall-deep` — Phase C (11 skills, v2.7.0): `briefing-recall`, `repo-link`, `recurring-schedule`, `deploy-track`, `profile-lookup`, `peers-discovery`, `mandate-lifecycle`, `bu-manage`, `messages-history`, `memory-edit`, `diary-discover`.
|
|
13
|
+
|
|
12
14
|
## Quick start
|
|
13
15
|
|
|
14
16
|
```bash
|
package/dist/src/tools.js
CHANGED
|
@@ -865,6 +865,9 @@ export function registerTools(server, convex, oauthCtx) {
|
|
|
865
865
|
type: memoryTypeSchema
|
|
866
866
|
.optional()
|
|
867
867
|
.describe("Filter to a specific type — omit to return all types"),
|
|
868
|
+
createdBy: assigneeSchema
|
|
869
|
+
.optional()
|
|
870
|
+
.describe("Filter by creator/orchestrator role — mirrors list_tasks pattern for cross-tool consistency."),
|
|
868
871
|
limit: z
|
|
869
872
|
.number()
|
|
870
873
|
.int()
|
|
@@ -878,7 +881,7 @@ export function registerTools(server, convex, oauthCtx) {
|
|
|
878
881
|
openWorldHint: false,
|
|
879
882
|
destructiveHint: false,
|
|
880
883
|
title: "List memories",
|
|
881
|
-
}, async ({ namespace, type, limit }) => {
|
|
884
|
+
}, async ({ namespace, type, createdBy, limit }) => {
|
|
882
885
|
try {
|
|
883
886
|
const nsDenied = guardRead(namespace);
|
|
884
887
|
if (nsDenied)
|
|
@@ -886,6 +889,7 @@ export function registerTools(server, convex, oauthCtx) {
|
|
|
886
889
|
const memories = await convex.query("memories:listMemories", {
|
|
887
890
|
namespace,
|
|
888
891
|
type,
|
|
892
|
+
createdBy,
|
|
889
893
|
limit: limit ?? 20,
|
|
890
894
|
});
|
|
891
895
|
const rawList = Array.isArray(memories)
|
|
@@ -2133,6 +2137,9 @@ export function registerTools(server, convex, oauthCtx) {
|
|
|
2133
2137
|
orchestrator: creatorSchema
|
|
2134
2138
|
.optional()
|
|
2135
2139
|
.describe("Filter to a specific orchestrator — omit for all"),
|
|
2140
|
+
createdBy: assigneeSchema
|
|
2141
|
+
.optional()
|
|
2142
|
+
.describe("Filter by creator/orchestrator role — alias of `orchestrator` for cross-tool consistency (mirrors list_tasks pattern). If both are passed, `createdBy` wins."),
|
|
2136
2143
|
limit: z
|
|
2137
2144
|
.number()
|
|
2138
2145
|
.int()
|
|
@@ -2146,16 +2153,18 @@ export function registerTools(server, convex, oauthCtx) {
|
|
|
2146
2153
|
openWorldHint: false,
|
|
2147
2154
|
destructiveHint: false,
|
|
2148
2155
|
title: "List diary entries",
|
|
2149
|
-
}, async ({ orchestrator, limit }) => {
|
|
2156
|
+
}, async ({ orchestrator, createdBy, limit }) => {
|
|
2150
2157
|
try {
|
|
2158
|
+
// createdBy is an alias of orchestrator (diary's author field). If both set, createdBy wins.
|
|
2159
|
+
const effectiveOrchestrator = createdBy ?? orchestrator;
|
|
2151
2160
|
// Non-master: must scope to own orchestrator id.
|
|
2152
2161
|
if (oauthCtx && !isMasterScope(oauthCtx)) {
|
|
2153
|
-
if (
|
|
2162
|
+
if (effectiveOrchestrator !== oauthCtx.userId) {
|
|
2154
2163
|
return mcpError(`Forbidden: list_diaries requires orchestrator='${oauthCtx.userId}' for non-master scope (current: ${oauthCtx.scopeProfile}).`);
|
|
2155
2164
|
}
|
|
2156
2165
|
}
|
|
2157
2166
|
const entries = await convex.query("diary:list", {
|
|
2158
|
-
orchestrator,
|
|
2167
|
+
orchestrator: effectiveOrchestrator,
|
|
2159
2168
|
limit: limit ?? 20,
|
|
2160
2169
|
});
|
|
2161
2170
|
return {
|
package/package.json
CHANGED