@quidli/connect-mcp 0.6.2 → 0.6.3
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/dist/schemas.d.ts +92 -0
- package/dist/schemas.js +43 -0
- package/dist/tools/register.d.ts +1 -1
- package/dist/tools/register.js +30 -1
- package/package.json +1 -1
package/dist/schemas.d.ts
CHANGED
|
@@ -97,4 +97,96 @@ export declare const dropInputSchema: {
|
|
|
97
97
|
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
98
98
|
amountInWeiPerRecipient: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
99
99
|
ignoreFailedRecipients: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
trustFilter: z.ZodOptional<z.ZodObject<{
|
|
101
|
+
context: z.ZodOptional<z.ZodString>;
|
|
102
|
+
mode: z.ZodEnum<["require", "skip"]>;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
mode: "require" | "skip";
|
|
105
|
+
context?: string | undefined;
|
|
106
|
+
}, {
|
|
107
|
+
mode: "require" | "skip";
|
|
108
|
+
context?: string | undefined;
|
|
109
|
+
}>>;
|
|
110
|
+
};
|
|
111
|
+
export declare const trustIdentitySchema: z.ZodObject<{
|
|
112
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
113
|
+
id: z.ZodOptional<z.ZodString>;
|
|
114
|
+
username: z.ZodOptional<z.ZodString>;
|
|
115
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
116
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
117
|
+
id: z.ZodOptional<z.ZodString>;
|
|
118
|
+
username: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
120
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
121
|
+
id: z.ZodOptional<z.ZodString>;
|
|
122
|
+
username: z.ZodOptional<z.ZodString>;
|
|
123
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
124
|
+
export declare const trustCreateInputSchema: {
|
|
125
|
+
to: z.ZodObject<{
|
|
126
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
127
|
+
id: z.ZodOptional<z.ZodString>;
|
|
128
|
+
username: z.ZodOptional<z.ZodString>;
|
|
129
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
130
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
131
|
+
id: z.ZodOptional<z.ZodString>;
|
|
132
|
+
username: z.ZodOptional<z.ZodString>;
|
|
133
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
134
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
135
|
+
id: z.ZodOptional<z.ZodString>;
|
|
136
|
+
username: z.ZodOptional<z.ZodString>;
|
|
137
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
138
|
+
level: z.ZodNumber;
|
|
139
|
+
context: z.ZodOptional<z.ZodString>;
|
|
140
|
+
expiresIn: z.ZodOptional<z.ZodNumber>;
|
|
141
|
+
};
|
|
142
|
+
export declare const trustRevokeInputSchema: {
|
|
143
|
+
to: z.ZodObject<{
|
|
144
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
145
|
+
id: z.ZodOptional<z.ZodString>;
|
|
146
|
+
username: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
148
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
149
|
+
id: z.ZodOptional<z.ZodString>;
|
|
150
|
+
username: z.ZodOptional<z.ZodString>;
|
|
151
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
152
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
153
|
+
id: z.ZodOptional<z.ZodString>;
|
|
154
|
+
username: z.ZodOptional<z.ZodString>;
|
|
155
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
156
|
+
context: z.ZodOptional<z.ZodString>;
|
|
157
|
+
};
|
|
158
|
+
export declare const trustCheckInputSchema: {
|
|
159
|
+
from: z.ZodObject<{
|
|
160
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
161
|
+
id: z.ZodOptional<z.ZodString>;
|
|
162
|
+
username: z.ZodOptional<z.ZodString>;
|
|
163
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
164
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
165
|
+
id: z.ZodOptional<z.ZodString>;
|
|
166
|
+
username: z.ZodOptional<z.ZodString>;
|
|
167
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
168
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
169
|
+
id: z.ZodOptional<z.ZodString>;
|
|
170
|
+
username: z.ZodOptional<z.ZodString>;
|
|
171
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
172
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
173
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
174
|
+
id: z.ZodOptional<z.ZodString>;
|
|
175
|
+
username: z.ZodOptional<z.ZodString>;
|
|
176
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
177
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
178
|
+
id: z.ZodOptional<z.ZodString>;
|
|
179
|
+
username: z.ZodOptional<z.ZodString>;
|
|
180
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
181
|
+
type: z.ZodEnum<["email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "wallet", "username"]>;
|
|
182
|
+
id: z.ZodOptional<z.ZodString>;
|
|
183
|
+
username: z.ZodOptional<z.ZodString>;
|
|
184
|
+
}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
185
|
+
context: z.ZodOptional<z.ZodString>;
|
|
186
|
+
};
|
|
187
|
+
export declare const trustGraphInputSchema: {
|
|
188
|
+
platform: z.ZodEnum<["wallet", "email", "phone", "telegram", "discord", "farcaster", "twitter", "github", "linkedin", "slack", "username"]>;
|
|
189
|
+
identifier: z.ZodString;
|
|
190
|
+
context: z.ZodOptional<z.ZodString>;
|
|
191
|
+
direction: z.ZodOptional<z.ZodEnum<["out", "in"]>>;
|
|
100
192
|
};
|
package/dist/schemas.js
CHANGED
|
@@ -123,4 +123,47 @@ export const dropInputSchema = {
|
|
|
123
123
|
.boolean()
|
|
124
124
|
.optional()
|
|
125
125
|
.describe('When true, send to recipients that resolved successfully and skip failed lookups.'),
|
|
126
|
+
trustFilter: z
|
|
127
|
+
.object({
|
|
128
|
+
context: z.string().optional().describe('Restrict to this trust context. Omit to match any.'),
|
|
129
|
+
mode: z.enum(['require', 'skip']).describe('require = fail if anyone is outside the graph; skip = drop them'),
|
|
130
|
+
})
|
|
131
|
+
.optional()
|
|
132
|
+
.describe('Keep only recipients in the sender EAS trust graph.'),
|
|
133
|
+
};
|
|
134
|
+
export const trustIdentitySchema = linkedAccountSchema;
|
|
135
|
+
export const trustCreateInputSchema = {
|
|
136
|
+
to: trustIdentitySchema.describe('Identity to trust (wallet, social, or Connect username)'),
|
|
137
|
+
level: z.number().int().min(1).max(100).describe('Trust level 1–100'),
|
|
138
|
+
context: z.string().max(64).optional().describe('Optional context such as team:quidli'),
|
|
139
|
+
expiresIn: z.number().int().positive().optional().describe('Optional lifetime in seconds'),
|
|
140
|
+
};
|
|
141
|
+
export const trustRevokeInputSchema = {
|
|
142
|
+
to: trustIdentitySchema.describe('Identity to untrust'),
|
|
143
|
+
context: z.string().max(64).optional().describe('Revoke only this context. Omit to revoke all contexts for the pair.'),
|
|
144
|
+
};
|
|
145
|
+
export const trustCheckInputSchema = {
|
|
146
|
+
from: trustIdentitySchema.describe('Graph owner'),
|
|
147
|
+
targets: z.array(trustIdentitySchema).min(1).describe('Identities to test'),
|
|
148
|
+
context: z.string().max(64).optional().describe('If set, only this context matches'),
|
|
149
|
+
};
|
|
150
|
+
export const trustGraphInputSchema = {
|
|
151
|
+
platform: z
|
|
152
|
+
.enum([
|
|
153
|
+
'wallet',
|
|
154
|
+
'email',
|
|
155
|
+
'phone',
|
|
156
|
+
'telegram',
|
|
157
|
+
'discord',
|
|
158
|
+
'farcaster',
|
|
159
|
+
'twitter',
|
|
160
|
+
'github',
|
|
161
|
+
'linkedin',
|
|
162
|
+
'slack',
|
|
163
|
+
'username',
|
|
164
|
+
])
|
|
165
|
+
.describe('Identity platform, or username for a Connect username'),
|
|
166
|
+
identifier: z.string().min(1),
|
|
167
|
+
context: z.string().max(64).optional(),
|
|
168
|
+
direction: z.enum(['out', 'in']).optional().describe('out = who they trust (default); in = who trusts them'),
|
|
126
169
|
};
|
package/dist/tools/register.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { ConnectClient } from '../client.js';
|
|
3
|
-
export declare const CONNECT_MCP_TOOL_NAMES: readonly ["connect_get_price", "connect_get_chains", "connect_lookup", "connect_lookup_exposed", "connect_scores_batch", "connect_scores_by_account", "connect_scores_by_username", "connect_me", "connect_drop", "connect_drop_balance"];
|
|
3
|
+
export declare const CONNECT_MCP_TOOL_NAMES: readonly ["connect_get_price", "connect_get_chains", "connect_lookup", "connect_lookup_exposed", "connect_scores_batch", "connect_scores_by_account", "connect_scores_by_username", "connect_me", "connect_drop", "connect_drop_balance", "connect_trust_create", "connect_trust_revoke", "connect_trust_check", "connect_trust_graph"];
|
|
4
4
|
export declare function registerTools(server: McpServer, client: ConnectClient): void;
|
package/dist/tools/register.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { dropBalanceInputSchema, dropInputSchema, lookupExposedInputSchema, lookupInputSchema, scoresBatchInputSchema, scoresByAccountInputSchema, scoresByUsernameInputSchema, } from '../schemas.js';
|
|
1
|
+
import { dropBalanceInputSchema, dropInputSchema, lookupExposedInputSchema, lookupInputSchema, scoresBatchInputSchema, scoresByAccountInputSchema, scoresByUsernameInputSchema, trustCheckInputSchema, trustCreateInputSchema, trustGraphInputSchema, trustRevokeInputSchema, } from '../schemas.js';
|
|
2
2
|
export const CONNECT_MCP_TOOL_NAMES = [
|
|
3
3
|
'connect_get_price',
|
|
4
4
|
'connect_get_chains',
|
|
@@ -10,6 +10,10 @@ export const CONNECT_MCP_TOOL_NAMES = [
|
|
|
10
10
|
'connect_me',
|
|
11
11
|
'connect_drop',
|
|
12
12
|
'connect_drop_balance',
|
|
13
|
+
'connect_trust_create',
|
|
14
|
+
'connect_trust_revoke',
|
|
15
|
+
'connect_trust_check',
|
|
16
|
+
'connect_trust_graph',
|
|
13
17
|
];
|
|
14
18
|
/**
|
|
15
19
|
* Tool annotations. `readOnlyHint` is load-bearing, not decorative: clients
|
|
@@ -79,4 +83,29 @@ export function registerTools(server, client) {
|
|
|
79
83
|
requireApiKey: true,
|
|
80
84
|
query: { chainId: String(chainId) },
|
|
81
85
|
}));
|
|
86
|
+
server.tool('connect_trust_create', 'Create a unidirectional trust attestation on Base (EAS) from the API key owner embedded wallet to a wallet or social identity. Identical active attestations are returned without a new transaction. Requires CONNECT_API_KEY, Smart Send attestation signer enrolled, and ETH on Base for gas.', trustCreateInputSchema, SPENDS_FUNDS, async (body) => client.request({
|
|
87
|
+
method: 'POST',
|
|
88
|
+
path: '/trust',
|
|
89
|
+
body,
|
|
90
|
+
requireApiKey: true,
|
|
91
|
+
}));
|
|
92
|
+
server.tool('connect_trust_revoke', 'Revoke active trust attestations from the API key owner to a target. Optional context limits which attestations are revoked. Requires CONNECT_API_KEY and ETH on Base.', trustRevokeInputSchema, SPENDS_FUNDS, async (body) => client.request({
|
|
93
|
+
method: 'POST',
|
|
94
|
+
path: '/trust/revoke',
|
|
95
|
+
body,
|
|
96
|
+
requireApiKey: true,
|
|
97
|
+
}));
|
|
98
|
+
server.tool('connect_trust_check', 'Check whether identities sit in a trust graph at depth 1. Omit context to match any context.', trustCheckInputSchema, READ_ONLY, async (body) => client.request({
|
|
99
|
+
method: 'POST',
|
|
100
|
+
path: '/trust/check',
|
|
101
|
+
body,
|
|
102
|
+
}));
|
|
103
|
+
server.tool('connect_trust_graph', 'List outgoing or incoming trust edges for an identity at depth 1.', trustGraphInputSchema, READ_ONLY, async ({ platform, identifier, context, direction }) => client.request({
|
|
104
|
+
method: 'GET',
|
|
105
|
+
path: `/trust/graph/${encodeURIComponent(platform)}/${encodeURIComponent(identifier)}`,
|
|
106
|
+
query: {
|
|
107
|
+
context,
|
|
108
|
+
direction,
|
|
109
|
+
},
|
|
110
|
+
}));
|
|
82
111
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quidli/connect-mcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "MCP server for agent identity and reputation: resolve social handles to wallet addresses, score onchain reputation, and send USDC from any MCP client.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|