attio-mcp 1.1.1 → 1.1.2

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +3 -2
  3. package/dist/api/operations/search.d.ts +5 -2
  4. package/dist/api/operations/search.d.ts.map +1 -1
  5. package/dist/api/operations/search.js +469 -9
  6. package/dist/api/operations/search.js.map +1 -1
  7. package/dist/handlers/tool-configs/openai/index.d.ts +2 -2
  8. package/dist/handlers/tool-configs/openai/index.d.ts.map +1 -1
  9. package/dist/handlers/tool-configs/openai/index.js +13 -2
  10. package/dist/handlers/tool-configs/openai/index.js.map +1 -1
  11. package/dist/handlers/tool-configs/universal/core/crud-operations.d.ts.map +1 -1
  12. package/dist/handlers/tool-configs/universal/core/crud-operations.js +22 -3
  13. package/dist/handlers/tool-configs/universal/core/crud-operations.js.map +1 -1
  14. package/dist/handlers/tool-configs/universal/index.d.ts +2 -2
  15. package/dist/handlers/tool-configs/universal/index.d.ts.map +1 -1
  16. package/dist/handlers/tool-configs/universal/index.js +7 -1
  17. package/dist/handlers/tool-configs/universal/index.js.map +1 -1
  18. package/dist/handlers/tools/registry.d.ts +2 -2
  19. package/dist/objects/deals/index.d.ts +1 -0
  20. package/dist/objects/deals/index.d.ts.map +1 -1
  21. package/dist/objects/deals/index.js +2 -0
  22. package/dist/objects/deals/index.js.map +1 -1
  23. package/dist/objects/deals/search.d.ts +16 -0
  24. package/dist/objects/deals/search.d.ts.map +1 -0
  25. package/dist/objects/deals/search.js +59 -0
  26. package/dist/objects/deals/search.js.map +1 -0
  27. package/dist/services/CachingService.d.ts +57 -0
  28. package/dist/services/CachingService.d.ts.map +1 -1
  29. package/dist/services/CachingService.js +112 -0
  30. package/dist/services/CachingService.js.map +1 -1
  31. package/dist/services/UniversalSearchService.d.ts +0 -12
  32. package/dist/services/UniversalSearchService.d.ts.map +1 -1
  33. package/dist/services/UniversalSearchService.js +19 -133
  34. package/dist/services/UniversalSearchService.js.map +1 -1
  35. package/dist/services/search-strategies/CompanySearchStrategy.d.ts.map +1 -1
  36. package/dist/services/search-strategies/CompanySearchStrategy.js +13 -11
  37. package/dist/services/search-strategies/CompanySearchStrategy.js.map +1 -1
  38. package/dist/services/search-strategies/DealSearchStrategy.d.ts +38 -0
  39. package/dist/services/search-strategies/DealSearchStrategy.d.ts.map +1 -0
  40. package/dist/services/search-strategies/DealSearchStrategy.js +119 -0
  41. package/dist/services/search-strategies/DealSearchStrategy.js.map +1 -0
  42. package/dist/services/search-strategies/NoteSearchStrategy.d.ts +62 -0
  43. package/dist/services/search-strategies/NoteSearchStrategy.d.ts.map +1 -0
  44. package/dist/services/search-strategies/NoteSearchStrategy.js +224 -0
  45. package/dist/services/search-strategies/NoteSearchStrategy.js.map +1 -0
  46. package/dist/services/search-strategies/PeopleSearchStrategy.d.ts.map +1 -1
  47. package/dist/services/search-strategies/PeopleSearchStrategy.js +13 -15
  48. package/dist/services/search-strategies/PeopleSearchStrategy.js.map +1 -1
  49. package/dist/services/search-strategies/index.d.ts +2 -0
  50. package/dist/services/search-strategies/index.d.ts.map +1 -1
  51. package/dist/services/search-strategies/index.js +2 -0
  52. package/dist/services/search-strategies/index.js.map +1 -1
  53. package/dist/services/search-strategies/interfaces.d.ts +6 -0
  54. package/dist/services/search-strategies/interfaces.d.ts.map +1 -1
  55. package/dist/services/search-utilities/SearchScorer.d.ts +4 -0
  56. package/dist/services/search-utilities/SearchScorer.d.ts.map +1 -0
  57. package/dist/services/search-utilities/SearchScorer.js +243 -0
  58. package/dist/services/search-utilities/SearchScorer.js.map +1 -0
  59. package/dist/services/search-utilities/SearchUtilities.d.ts +5 -0
  60. package/dist/services/search-utilities/SearchUtilities.d.ts.map +1 -1
  61. package/dist/services/search-utilities/SearchUtilities.js +20 -0
  62. package/dist/services/search-utilities/SearchUtilities.js.map +1 -1
  63. package/dist/smithery.d.ts +1 -1
  64. package/dist/smithery.d.ts.map +1 -1
  65. package/dist/smithery.js +10 -8
  66. package/dist/smithery.js.map +1 -1
  67. package/dist/utils/mcp-discovery.d.ts.map +1 -1
  68. package/dist/utils/mcp-discovery.js +19 -1
  69. package/dist/utils/mcp-discovery.js.map +1 -1
  70. package/package.json +4 -1
@@ -0,0 +1,243 @@
1
+ import uFuzzy from '@leeoniya/ufuzzy';
2
+ import { parseQuery } from '../../api/operations/query-parser.js';
3
+ /**
4
+ * Score weights for search relevance ranking
5
+ *
6
+ * Hierarchy (descending):
7
+ * 1. Exact matches (1200-900) - Highest confidence signals
8
+ * 2. Prefix matches (350) - Strong relevance indicators
9
+ * 3. Multi-token matches (250) - All query terms present
10
+ * 4. Fuzzy matches (240 base) - Typo tolerance
11
+ * 5. Single token matches (40-90) - Partial relevance
12
+ *
13
+ * Rationale:
14
+ * - Domain > Email > Phone > Name: Domains are most discriminative (unique per company)
15
+ * - Exact > Prefix > Fuzzy > Token: Match precision determines confidence
16
+ * - 79% ratio (email/domain): Email nearly as strong as domain for identity
17
+ * - 20% ratio (partial/exact): Partial matches indicate relevance but lower confidence
18
+ */
19
+ const SCORE_WEIGHTS = {
20
+ domainExact: 1200, // Highest - exact domain match is strongest identity signal
21
+ domainPartial: 250, // 20% of exact - partial domain match (e.g., "acme" in "acme-corp.com")
22
+ emailExact: 950, // 79% of domain - email nearly as strong as domain for person identity
23
+ phoneExact: 900, // 75% of domain - phone is strong but less unique than domain/email
24
+ nameExact: 600, // 50% of domain - names have more collisions than domains
25
+ namePrefix: 350, // 29% of exact - "John" matching "John Smith" is strong signal
26
+ allTokensInName: 250, // All query tokens present - multi-word match confidence
27
+ tokenInName: 90, // Single token in name - weak signal (e.g., "Smith" is common)
28
+ tokenInDomain: 70, // Single token in domain - slightly weaker than name
29
+ tokenInEmail: 40, // Single token in email - weakest signal (high noise)
30
+ fuzzyBase: 240, // Base score for fuzzy matches (typo tolerance)
31
+ fuzzyStep: 24, // Penalty per character difference in fuzzy match (10% of base)
32
+ };
33
+ function normalizeString(value) {
34
+ return value.toLowerCase().trim();
35
+ }
36
+ function normalizeDomain(value) {
37
+ return normalizeString(value.replace(/^https?:\/\//, '').replace(/^www\./, ''));
38
+ }
39
+ function dedupe(values) {
40
+ return Array.from(new Set(values.filter(Boolean)));
41
+ }
42
+ function collectStrings(value, keys = []) {
43
+ const results = [];
44
+ const pushValue = (candidate) => {
45
+ if (typeof candidate === 'string' && candidate.trim()) {
46
+ results.push(normalizeString(candidate));
47
+ }
48
+ };
49
+ if (!value) {
50
+ return results;
51
+ }
52
+ if (typeof value === 'string') {
53
+ pushValue(value);
54
+ return results;
55
+ }
56
+ if (Array.isArray(value)) {
57
+ value.forEach((item) => {
58
+ if (typeof item === 'string') {
59
+ pushValue(item);
60
+ }
61
+ else if (item && typeof item === 'object') {
62
+ keys.forEach((key) => {
63
+ pushValue(item[key]);
64
+ });
65
+ }
66
+ });
67
+ return results;
68
+ }
69
+ if (value && typeof value === 'object') {
70
+ keys.forEach((key) => {
71
+ pushValue(value[key]);
72
+ });
73
+ }
74
+ return results;
75
+ }
76
+ function extractName(values) {
77
+ const nameValue = values.name;
78
+ if (typeof nameValue === 'string') {
79
+ return normalizeString(nameValue);
80
+ }
81
+ if (Array.isArray(nameValue) && nameValue.length > 0) {
82
+ const first = nameValue[0];
83
+ if (typeof first === 'string') {
84
+ return normalizeString(first);
85
+ }
86
+ if (first && typeof first === 'object') {
87
+ const candidate = first.full_name ??
88
+ first.formatted ??
89
+ first.value;
90
+ if (typeof candidate === 'string') {
91
+ return normalizeString(candidate);
92
+ }
93
+ }
94
+ }
95
+ const fullName = values.full_name;
96
+ if (typeof fullName === 'string') {
97
+ return normalizeString(fullName);
98
+ }
99
+ const titleValue = values.title;
100
+ if (typeof titleValue === 'string') {
101
+ return normalizeString(titleValue);
102
+ }
103
+ return '';
104
+ }
105
+ function extractRecordInfo(record) {
106
+ const values = (record?.values ?? {});
107
+ const name = extractName(values);
108
+ const rawDomains = collectStrings(values.domains, ['domain', 'value']).map(normalizeDomain);
109
+ const websiteValue = values.website;
110
+ if (typeof websiteValue === 'string') {
111
+ rawDomains.push(normalizeDomain(websiteValue));
112
+ }
113
+ const domains = dedupe(rawDomains);
114
+ const emails = dedupe(collectStrings(values.email_addresses, ['email_address', 'value']));
115
+ const phones = dedupe(collectStrings(values.phone_numbers, ['number', 'normalized', 'value']));
116
+ const phoneVariants = new Set();
117
+ phones.forEach((phone) => {
118
+ const digitsOnly = phone.replace(/\D+/g, '');
119
+ phoneVariants.add(phone);
120
+ if (digitsOnly) {
121
+ phoneVariants.add(digitsOnly);
122
+ phoneVariants.add(`+${digitsOnly}`);
123
+ if (digitsOnly.length === 10) {
124
+ phoneVariants.add(`+1${digitsOnly}`);
125
+ }
126
+ if (digitsOnly.length === 11 && digitsOnly.startsWith('1')) {
127
+ phoneVariants.add(`+${digitsOnly}`);
128
+ }
129
+ }
130
+ });
131
+ const haystack = dedupe([name, ...domains, ...emails, ...phones])
132
+ .filter(Boolean)
133
+ .join(' ');
134
+ return {
135
+ name,
136
+ domains,
137
+ emails,
138
+ phones,
139
+ phoneVariants,
140
+ haystack: haystack || name,
141
+ };
142
+ }
143
+ function applyStructuredScoring(candidate, parsed) {
144
+ const { info } = candidate;
145
+ parsed.domains.forEach((domain) => {
146
+ const normalized = normalizeDomain(domain);
147
+ if (info.domains.includes(normalized)) {
148
+ candidate.score += SCORE_WEIGHTS.domainExact;
149
+ }
150
+ else if (info.domains.some((storedDomain) => storedDomain.includes(normalized))) {
151
+ candidate.score += SCORE_WEIGHTS.domainPartial;
152
+ }
153
+ });
154
+ parsed.emails.forEach((email) => {
155
+ const normalized = normalizeString(email);
156
+ if (info.emails.includes(normalized)) {
157
+ candidate.score += SCORE_WEIGHTS.emailExact;
158
+ }
159
+ });
160
+ parsed.phones.forEach((phone) => {
161
+ if (info.phoneVariants.has(phone)) {
162
+ candidate.score += SCORE_WEIGHTS.phoneExact;
163
+ }
164
+ });
165
+ if (parsed.normalizedQuery && info.name === parsed.normalizedQuery) {
166
+ candidate.score += SCORE_WEIGHTS.nameExact;
167
+ }
168
+ else if (parsed.normalizedQuery &&
169
+ info.name.startsWith(parsed.normalizedQuery)) {
170
+ candidate.score += SCORE_WEIGHTS.namePrefix;
171
+ }
172
+ const tokens = parsed.tokens.map((token) => token.toLowerCase());
173
+ if (tokens.length > 0 && tokens.every((token) => info.name.includes(token))) {
174
+ candidate.score += SCORE_WEIGHTS.allTokensInName;
175
+ }
176
+ tokens.forEach((token) => {
177
+ if (info.name.includes(token)) {
178
+ candidate.score += SCORE_WEIGHTS.tokenInName;
179
+ }
180
+ if (info.domains.some((domain) => domain.includes(token))) {
181
+ candidate.score += SCORE_WEIGHTS.tokenInDomain;
182
+ }
183
+ if (info.emails.some((email) => email.includes(token))) {
184
+ candidate.score += SCORE_WEIGHTS.tokenInEmail;
185
+ }
186
+ });
187
+ }
188
+ function applyFuzzyScoring(candidates, parsed) {
189
+ const needle = parsed.normalizedQuery ||
190
+ parsed.tokens.join(' ').toLowerCase() ||
191
+ parsed.domains.join(' ').toLowerCase();
192
+ if (!needle) {
193
+ return;
194
+ }
195
+ const haystack = candidates.map(({ info }) => info.haystack || info.name);
196
+ const uf = new uFuzzy({ unicode: true });
197
+ const searchResult = uf.search(haystack, needle);
198
+ if (!searchResult) {
199
+ return;
200
+ }
201
+ const indices = searchResult[0];
202
+ const order = searchResult[2];
203
+ if (!Array.isArray(indices) || indices.length === 0) {
204
+ return;
205
+ }
206
+ indices.forEach((matchIdx, resultIdx) => {
207
+ if (typeof matchIdx !== 'number' || matchIdx >= candidates.length) {
208
+ return;
209
+ }
210
+ const orderValue = Array.isArray(order) && typeof order[resultIdx] === 'number'
211
+ ? order[resultIdx]
212
+ : resultIdx;
213
+ const bonus = SCORE_WEIGHTS.fuzzyBase -
214
+ SCORE_WEIGHTS.fuzzyStep * Math.min(orderValue, 10);
215
+ candidates[matchIdx].score += Math.max(0, bonus);
216
+ });
217
+ }
218
+ export function scoreAndRank(query, results, parsedInput) {
219
+ const trimmedQuery = query.trim();
220
+ if (!trimmedQuery || results.length <= 1) {
221
+ return results.slice();
222
+ }
223
+ const parsed = parsedInput ?? parseQuery(trimmedQuery);
224
+ const candidates = results.map((record, index) => ({
225
+ record,
226
+ originalIndex: index,
227
+ score: 0,
228
+ info: extractRecordInfo(record),
229
+ }));
230
+ candidates.forEach((candidate) => {
231
+ applyStructuredScoring(candidate, parsed);
232
+ });
233
+ applyFuzzyScoring(candidates, parsed);
234
+ return candidates
235
+ .sort((a, b) => {
236
+ if (b.score !== a.score) {
237
+ return b.score - a.score;
238
+ }
239
+ return a.originalIndex - b.originalIndex;
240
+ })
241
+ .map((candidate) => candidate.record);
242
+ }
243
+ //# sourceMappingURL=SearchScorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchScorer.js","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchScorer.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,11 @@ export declare class SearchUtilities {
38
38
  * Helper method to extract field value from a task record for content search
39
39
  */
40
40
  static getTaskFieldValue(task: AttioRecord, field: string): string;
41
+ /**
42
+ * Helper method to extract field value from a note record for content search
43
+ * Issue #888: Support notes search by title and content
44
+ */
45
+ static getNoteFieldValue(note: AttioRecord, field: string): string;
41
46
  /**
42
47
  * Create date filter from timeframe parameters
43
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUtilities.d.ts","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAkBrE;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,GACrB,WAAW,EAAE;IAwDhB;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAkB1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDjC;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA+B3B"}
1
+ {"version":3,"file":"SearchUtilities.d.ts","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAkBrE;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,GACrB,WAAW,EAAE;IAwDhB;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IAkB1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAuDjC;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA+B3B"}
@@ -148,6 +148,26 @@ export class SearchUtilities {
148
148
  }
149
149
  return '';
150
150
  }
151
+ /**
152
+ * Helper method to extract field value from a note record for content search
153
+ * Issue #888: Support notes search by title and content
154
+ */
155
+ static getNoteFieldValue(note, field) {
156
+ const values = note.values;
157
+ if (!values)
158
+ return '';
159
+ const fieldValue = values[field];
160
+ // Handle different field value structures for notes
161
+ if (typeof fieldValue === 'string') {
162
+ return fieldValue;
163
+ }
164
+ else if (fieldValue &&
165
+ typeof fieldValue === 'object' &&
166
+ 'value' in fieldValue) {
167
+ return String(fieldValue.value || '');
168
+ }
169
+ return '';
170
+ }
151
171
  /**
152
172
  * Create date filter from timeframe parameters
153
173
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SearchUtilities.js","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchUtilities.js","sourceRoot":"","sources":["../../../src/services/search-utilities/SearchUtilities.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { z } from 'zod';
12
12
  export declare const configSchema: z.ZodObject<{
13
13
  ATTIO_API_KEY: z.ZodOptional<z.ZodString>;
14
14
  ATTIO_WORKSPACE_ID: z.ZodOptional<z.ZodString>;
15
- ATTIO_MCP_TOOL_MODE: z.ZodOptional<z.ZodDefault<z.ZodEnum<["full", "search"]>>>;
15
+ ATTIO_MCP_TOOL_MODE: z.ZodOptional<z.ZodEnum<["full", "search"]>>;
16
16
  debug: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
17
17
  }, "strip", z.ZodTypeAny, {
18
18
  ATTIO_API_KEY?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"smithery.d.ts","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAcvB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;GA8BA"}
1
+ {"version":3,"file":"smithery.d.ts","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAavB,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;GAgCA"}
package/dist/smithery.js CHANGED
@@ -18,7 +18,6 @@ export const configSchema = z.object({
18
18
  .optional(),
19
19
  ATTIO_MCP_TOOL_MODE: z
20
20
  .enum(['full', 'search'])
21
- .default('full')
22
21
  .describe('Tool mode: "full" (all 33 tools, requires ChatGPT Developer Mode) or "search" (only search/fetch/health-check for non-Developer Mode users)')
23
22
  .optional(),
24
23
  debug: z.boolean().default(false).describe('Enable debug logging').optional(),
@@ -36,17 +35,20 @@ export default function createServer({ config, }) {
36
35
  }
37
36
  // Set server mode flag to enable background intervals (performance tracking, etc.)
38
37
  process.env.MCP_SERVER_MODE = 'true';
39
- // CRITICAL: Apply user-configured tool mode or default to full mode (Issue #869)
40
- // See: docs/architecture/tool-modes.md for implementation details
41
- const toolMode = config?.ATTIO_MCP_TOOL_MODE || 'full';
42
- if (toolMode === 'full') {
43
- // Full mode: Delete env var to expose all 33 universal tools
38
+ // CRITICAL: Tool mode configuration (Issue #869 final fix)
39
+ // Do NOT set environment variables - Smithery manages them at container level
40
+ // If user didn't provide ATTIO_MCP_TOOL_MODE, ensure env var is not set
41
+ // This allows isSearchOnlyMode() to return false (full tool access)
42
+ if (!config?.ATTIO_MCP_TOOL_MODE) {
44
43
  delete process.env.ATTIO_MCP_TOOL_MODE;
45
44
  }
46
- else {
47
- // Search-only mode: Set env var to restrict to search/fetch/health-check
45
+ else if (config.ATTIO_MCP_TOOL_MODE === 'search') {
48
46
  process.env.ATTIO_MCP_TOOL_MODE = 'search';
49
47
  }
48
+ else {
49
+ // User explicitly set 'full' mode
50
+ delete process.env.ATTIO_MCP_TOOL_MODE;
51
+ }
50
52
  // Create the MCP server with a context that provides access to config
51
53
  // The API key is only checked when tools are actually invoked
52
54
  const server = buildServer({
@@ -1 +1 @@
1
- {"version":3,"file":"smithery.js","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACnE,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,CAAC,6BAA6B,CAAC;SACvC,QAAQ,EAAE;IACb,mBAAmB,EAAE,CAAC;SACnB,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACxB,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACP,6IAA6I,CAC9I;SACA,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GAGP;IACC,oCAAoC;IACpC,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,mFAAmF;IACnF,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IAErC,iFAAiF;IACjF,kEAAkE;IAClE,MAAM,QAAQ,GAAG,MAAM,EAAE,mBAAmB,IAAI,MAAM,CAAC;IACvD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,6DAA6D;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IAC7C,CAAC;IAED,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QACnE,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,EAAE,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;KAC/D,CAAC,CAAC;IAEH,kEAAkE;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"smithery.js","sourceRoot":"","sources":["../src/smithery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IACnE,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,CAAC,6BAA6B,CAAC;SACvC,QAAQ,EAAE;IACb,mBAAmB,EAAE,CAAC;SACnB,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACxB,QAAQ,CACP,6IAA6I,CAC9I;SACA,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,MAAM,GAGP;IACC,oCAAoC;IACpC,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IACtC,CAAC;IAED,mFAAmF;IACnF,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC;IAErC,2DAA2D;IAC3D,8EAA8E;IAC9E,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC;SAAM,IAAI,MAAM,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,kCAAkC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAED,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QACnE,cAAc,EAAE,GAAG,EAAE,CACnB,MAAM,EAAE,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;KAC/D,CAAC,CAAC;IAEH,kEAAkE;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-discovery.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAuBD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAU1D"}
1
+ {"version":3,"file":"mcp-discovery.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AA6B/D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAwBD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAU1D"}
@@ -1,6 +1,23 @@
1
1
  import { TOOL_DEFINITIONS } from '../handlers/tools/registry.js';
2
2
  import { filterAllowedTools } from '../config/tool-mode.js';
3
3
  import { getAllPrompts } from '../prompts/templates/index.js';
4
+ const WRITE_TOOL_PATTERN = /(create|update|delete|remove|add|batch|commit|write)/i;
5
+ function ensureAnnotations(tool) {
6
+ const typedTool = tool;
7
+ const annotations = {
8
+ ...(typedTool.annotations ?? {}),
9
+ };
10
+ if (annotations.readOnlyHint === undefined) {
11
+ annotations.readOnlyHint = !WRITE_TOOL_PATTERN.test(tool.name);
12
+ }
13
+ if (annotations.openWorldHint === undefined) {
14
+ annotations.openWorldHint = true;
15
+ }
16
+ return {
17
+ ...tool,
18
+ annotations,
19
+ };
20
+ }
4
21
  function flattenToolDefinitions() {
5
22
  const allTools = [];
6
23
  for (const toolDefs of Object.values(TOOL_DEFINITIONS)) {
@@ -15,7 +32,8 @@ function flattenToolDefinitions() {
15
32
  allTools.push(...Object.values(toolDefs));
16
33
  }
17
34
  }
18
- return filterAllowedTools(allTools);
35
+ const allowed = filterAllowedTools(allTools);
36
+ return allowed.map((tool) => ensureAnnotations(tool));
19
37
  }
20
38
  export function getToolsListPayload() {
21
39
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-discovery.js","sourceRoot":"","sources":["../../src/utils/mcp-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAkB7D,SAAS,sBAAsB;IAC7B,MAAM,QAAQ,GAAW,EAAE,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAI,QAAmB,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAY,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,kBAAkB,CAAC,QAAQ,CAAW,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,sBAAsB,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mcp-discovery.js","sourceRoot":"","sources":["../../src/utils/mcp-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAO7D,MAAM,kBAAkB,GACtB,uDAAuD,CAAC;AAE1D,SAAS,iBAAiB,CAAC,IAAU;IACnC,MAAM,SAAS,GAAG,IAA2B,CAAC;IAC9C,MAAM,WAAW,GAA4B;QAC3C,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC;KACjC,CAAC;IAEF,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,WAAW,CAAC,YAAY,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,WAAW;KACJ,CAAC;AACZ,CAAC;AAiBD,SAAS,sBAAsB;IAC7B,MAAM,QAAQ,GAAW,EAAE,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAI,QAAmB,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAY,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAW,CAAC;IACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,sBAAsB,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "attio-mcp",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "AI-powered access to Attio CRM. Manage contacts, companies, deals, tasks, and notes. Search records, update pipelines, and automate workflows for sales and GTM teams.",
5
5
  "main": "dist/smithery.js",
6
6
  "module": "src/smithery.ts",
@@ -76,6 +76,7 @@
76
76
  "perf:monitor": "node scripts/performance-monitor.cjs",
77
77
  "perf:report": "npm run test:performance -- --reporter=json > performance-results.json",
78
78
  "perf:budgets": "node scripts/check-performance-budgets.cjs",
79
+ "test:attio-operators": "tsx scripts/test-attio-operators.mjs",
79
80
  "check:offline": "tsc --project configs/tsconfig/tsconfig.offline.json --noEmit",
80
81
  "analyze:token-footprint": "tsx scripts/analyze-token-footprint.ts",
81
82
  "migrate-config": "node scripts/migrate-user-config.js",
@@ -189,6 +190,7 @@
189
190
  "homepage": "https://github.com/kesslerio/attio-mcp-server#readme",
190
191
  "dependencies": {
191
192
  "@dqbd/tiktoken": "^1.0.15",
193
+ "@leeoniya/ufuzzy": "^1.0.14",
192
194
  "@modelcontextprotocol/sdk": "^1.4.1",
193
195
  "@smithery/sdk": "^1.6.6",
194
196
  "chalk": "^5.3.0",
@@ -198,6 +200,7 @@
198
200
  "fast-safe-stringify": "^2.1.1",
199
201
  "handlebars": "^4.7.8",
200
202
  "libphonenumber-js": "^1.12.16",
203
+ "lru-cache": "^11.2.2",
201
204
  "ora": "^7.0.1",
202
205
  "safe-stable-stringify": "^2.5.0",
203
206
  "sanitize-html": "^2.17.0",