File tree Expand file tree Collapse file tree 8 files changed +64
-7
lines changed
app/(private)/settings/_components/Integrations/New
core/src/services/integrations/hostedTypes
web-ui/src/ds/atoms/Icons Expand file tree Collapse file tree 8 files changed +64
-7
lines changed Original file line number Diff line number Diff line change @@ -88,12 +88,6 @@ export default function NewIntegration() {
88
88
if ( integrationName . includes ( '/' ) ) {
89
89
errors . push ( 'Name cannot contain slashes' )
90
90
}
91
- if (
92
- integrationName === 'latitude' ||
93
- integrations ?. some ( ( integration ) => integration . name === integrationName )
94
- ) {
95
- errors . push ( 'An integration with this name already exists' )
96
- }
97
91
return errors . length ? errors : undefined
98
92
} , [ integrationName , integrations ] )
99
93
Original file line number Diff line number Diff line change @@ -164,6 +164,10 @@ export const HOSTED_INTEGRATION_TYPE_OPTIONS: Record<
164
164
label : 'Apify' ,
165
165
icon : 'apify' ,
166
166
} ,
167
+ [ HostedIntegrationType . Exa ] : {
168
+ label : 'Exa' ,
169
+ icon : 'exa' ,
170
+ } ,
167
171
}
168
172
169
173
export function integrationOptions (
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ export enum HostedIntegrationType {
39
39
Hyperbrowser = 'hyperbrowser' ,
40
40
Audiense = 'audiense' ,
41
41
Apify = 'apify' ,
42
+ Exa = 'exa' ,
42
43
43
44
// Require all auth file :point_down:
44
45
// Gmail = 'google_drive',
Original file line number Diff line number Diff line change 1
1
import { HostedIntegrationConfig } from '../types'
2
+ import { npxCommand } from '../utils'
2
3
3
4
export default {
4
5
description : 'Integration for interacting with Audiense' ,
5
- command : 'node mcps/mcp-audiense-insights/build/index.js' ,
6
+ command : npxCommand ( {
7
+ package : 'github:AudienseCo/mcp-audiense-insights' ,
8
+ } ) ,
6
9
env : {
7
10
AUDIENSE_CLIENT_ID : {
8
11
label : 'Audiense Client ID' ,
Original file line number Diff line number Diff line change
1
+ import { HostedIntegrationConfig } from '../types'
2
+ import { npxCommand } from '../utils'
3
+
4
+ const EXA_MCP_CONFIG : HostedIntegrationConfig = {
5
+ description : 'Exa MCP Server for web search and data extraction' ,
6
+ command : npxCommand ( {
7
+ package : 'github:exa-labs/exa-mcp-server' ,
8
+ } ) ,
9
+ env : {
10
+ EXA_API_KEY : {
11
+ label : 'API Key' ,
12
+ description : 'The API key for your Exa account' ,
13
+ placeholder : 'your-exa-api-key' ,
14
+ required : true ,
15
+ } ,
16
+ } ,
17
+ envSource : 'https://dashboard.exa.ai/login?redirect=/api-keys' ,
18
+ }
19
+
20
+ export default EXA_MCP_CONFIG
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ import FIGMA_MCP_CONFIG from './configs/figma'
32
32
import HYPERBROWSER_MCP_CONFIG from './configs/hyperbrowser'
33
33
import AUDIENSE_MCP_CONFIG from './configs/audiense'
34
34
import APIFY_MCP_CONFIG from './configs/apify'
35
+ import EXA_MCP_CONFIG from './configs/exa'
35
36
36
37
export const HOSTED_MCP_CONFIGS : Record <
37
38
HostedIntegrationType ,
@@ -70,4 +71,5 @@ export const HOSTED_MCP_CONFIGS: Record<
70
71
[ HostedIntegrationType . Hyperbrowser ] : HYPERBROWSER_MCP_CONFIG ,
71
72
[ HostedIntegrationType . Audiense ] : AUDIENSE_MCP_CONFIG ,
72
73
[ HostedIntegrationType . Apify ] : APIFY_MCP_CONFIG ,
74
+ [ HostedIntegrationType . Exa ] : EXA_MCP_CONFIG ,
73
75
}
Original file line number Diff line number Diff line change
1
+ import { type LucideProps } from 'lucide-react'
2
+
3
+ export default function Exa ( props : LucideProps ) {
4
+ return (
5
+ < svg
6
+ viewBox = '0 0 278 100'
7
+ fill = 'none'
8
+ xmlns = 'http://www.w3.org/2000/svg'
9
+ { ...props }
10
+ >
11
+ < path
12
+ d = 'M161.632 53.2837H115.472C115.918 66.4186 125.061 72.7596 133.981 72.7596C142.9 72.7596 147.806 68.6833 150.371 62.682H160.851C158.064 73.2126 148.587 81.8182 133.981 81.8182C115.026 81.8182 104.545 68.0039 104.545 50C104.545 30.7506 117.256 18.4083 133.646 18.4083C151.931 18.4083 162.97 34.0343 161.632 53.2837ZM133.646 27.2404C124.615 27.2404 116.476 32.2226 115.584 44.4516H150.928C150.705 35.846 144.35 27.2404 133.646 27.2404Z'
13
+ fill = 'currentColor'
14
+ > </ path >
15
+ < path
16
+ d = 'M219.201 19.4274L198.797 48.528L221.208 80.3462H209.055L192.777 57.1336L176.61 80.3462H165.014L187.09 48.9809L166.352 19.4274H178.505L193.111 40.3753L207.829 19.4274H219.201Z'
17
+ fill = 'currentColor'
18
+ > </ path >
19
+ < path
20
+ d = 'M266.458 54.869V51.0191C248.061 52.944 236.354 55.6616 236.354 64.0408C236.354 69.8156 240.702 73.6655 247.949 73.6655C257.426 73.6655 266.458 69.2494 266.458 54.869ZM245.719 81.8182C234.458 81.8182 225.092 75.4772 225.092 64.2672C225.092 49.8868 241.036 45.6972 265.677 42.8664V41.3944C265.677 30.2976 259.545 26.561 252.075 26.561C243.712 26.561 238.806 31.2035 238.36 38.6768H227.88C228.883 25.5419 240.256 18.1818 251.963 18.1818C268.465 18.1818 275.935 26.2213 275.823 43.3193L275.712 57.3601C275.6 67.551 276.158 74.5713 277.273 80.3462H267.015C266.681 78.0815 266.346 75.5904 266.235 71.967C262.555 78.1948 256.311 81.8182 245.719 81.8182Z'
21
+ fill = 'currentColor'
22
+ > </ path >
23
+ < path
24
+ fillRule = 'evenodd'
25
+ clipRule = 'evenodd'
26
+ d = 'M0 0H78.1818V7.46269L44.8165 50L78.1818 92.5373V100H0V0ZM39.5825 43.1172L66.6956 7.46269H12.4695L39.5825 43.1172ZM8.79612 16.3977V46.2687H31.5111L8.79612 16.3977ZM31.5111 53.7313H8.79612V83.6023L31.5111 53.7313ZM12.4695 92.5373L39.5825 56.8828L66.6956 92.5373H12.4695Z'
27
+ fill = 'currentColor'
28
+ > </ path >
29
+ </ svg >
30
+ )
31
+ }
Original file line number Diff line number Diff line change @@ -145,6 +145,7 @@ import Telegram from './custom-icons/logos/Telegram'
145
145
import Tinybird from './custom-icons/logos/Tinybird'
146
146
import TwitterX from './custom-icons/logos/TwitterX'
147
147
import Wordpress from './custom-icons/logos/Wordpress'
148
+ import Exa from './custom-icons/logos/Exa'
148
149
149
150
const Icons = {
150
151
// hubspot: Hubspot,
@@ -288,6 +289,7 @@ const Icons = {
288
289
clipboardCheck : ClipboardCheck ,
289
290
space : Space ,
290
291
blend : Blend ,
292
+ exa : Exa ,
291
293
}
292
294
293
295
export type IconName = keyof typeof Icons
You can’t perform that action at this time.
0 commit comments