diff --git a/packages/twenty-front/public/images/integrations/mcp.svg b/packages/twenty-front/public/images/integrations/mcp.svg
new file mode 100644
index 000000000..7305c372a
--- /dev/null
+++ b/packages/twenty-front/public/images/integrations/mcp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts
index c23a8fcab..1a832ec55 100644
--- a/packages/twenty-front/src/generated-metadata/graphql.ts
+++ b/packages/twenty-front/src/generated-metadata/graphql.ts
@@ -435,14 +435,6 @@ export type ConnectionParametersOutput = {
username: Scalars['String'];
};
-export type CreateAgentInput = {
- description?: InputMaybe;
- modelId: Scalars['String'];
- name: Scalars['String'];
- prompt: Scalars['String'];
- responseFormat?: InputMaybe;
-};
-
export type CreateAppTokenInput = {
expiresAt: Scalars['DateTime'];
};
@@ -688,6 +680,7 @@ export enum FeatureFlagKey {
IS_IMAP_ENABLED = 'IS_IMAP_ENABLED',
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
IS_POSTGRESQL_INTEGRATION_ENABLED = 'IS_POSTGRESQL_INTEGRATION_ENABLED',
+ IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
IS_STRIPE_INTEGRATION_ENABLED = 'IS_STRIPE_INTEGRATION_ENABLED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED'
@@ -1007,7 +1000,6 @@ export type Mutation = {
createDraftFromWorkflowVersion: WorkflowVersion;
createOIDCIdentityProvider: SetupSsoOutput;
createObjectEvent: Analytics;
- createOneAgent: Agent;
createOneAppToken: AppToken;
createOneField: Field;
createOneObject: Object;
@@ -1020,7 +1012,6 @@ export type Mutation = {
deleteApprovedAccessDomain: Scalars['Boolean'];
deleteCurrentWorkspace: Workspace;
deleteDatabaseConfigVariable: Scalars['Boolean'];
- deleteOneAgent: Agent;
deleteOneField: Field;
deleteOneObject: Object;
deleteOneRemoteServer: RemoteServer;
@@ -1154,11 +1145,6 @@ export type MutationCreateObjectEventArgs = {
};
-export type MutationCreateOneAgentArgs = {
- input: CreateAgentInput;
-};
-
-
export type MutationCreateOneAppTokenArgs = {
input: CreateOneAppTokenInput;
};
@@ -1214,11 +1200,6 @@ export type MutationDeleteDatabaseConfigVariableArgs = {
};
-export type MutationDeleteOneAgentArgs = {
- input: AgentIdInput;
-};
-
-
export type MutationDeleteOneFieldArgs = {
input: DeleteOneFieldInput;
};
@@ -1745,7 +1726,6 @@ export type Query = {
field: Field;
fields: FieldConnection;
findDistantTablesWithStatus: Array;
- findManyAgents: Array;
findManyRemoteServersByType: Array;
findManyServerlessFunctions: Array;
findOneAgent: Agent;
diff --git a/packages/twenty-front/src/generated/graphql.ts b/packages/twenty-front/src/generated/graphql.ts
index e1f224b91..c587db4c7 100644
--- a/packages/twenty-front/src/generated/graphql.ts
+++ b/packages/twenty-front/src/generated/graphql.ts
@@ -435,14 +435,6 @@ export type ConnectionParametersOutput = {
username: Scalars['String'];
};
-export type CreateAgentInput = {
- description?: InputMaybe;
- modelId: Scalars['String'];
- name: Scalars['String'];
- prompt: Scalars['String'];
- responseFormat?: InputMaybe;
-};
-
export type CreateApprovedAccessDomainInput = {
domain: Scalars['String'];
email: Scalars['String'];
@@ -652,6 +644,7 @@ export enum FeatureFlagKey {
IS_IMAP_ENABLED = 'IS_IMAP_ENABLED',
IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED',
IS_POSTGRESQL_INTEGRATION_ENABLED = 'IS_POSTGRESQL_INTEGRATION_ENABLED',
+ IS_RELATION_CONNECT_ENABLED = 'IS_RELATION_CONNECT_ENABLED',
IS_STRIPE_INTEGRATION_ENABLED = 'IS_STRIPE_INTEGRATION_ENABLED',
IS_UNIQUE_INDEXES_ENABLED = 'IS_UNIQUE_INDEXES_ENABLED',
IS_WORKFLOW_FILTERING_ENABLED = 'IS_WORKFLOW_FILTERING_ENABLED'
@@ -964,7 +957,6 @@ export type Mutation = {
createDraftFromWorkflowVersion: WorkflowVersion;
createOIDCIdentityProvider: SetupSsoOutput;
createObjectEvent: Analytics;
- createOneAgent: Agent;
createOneAppToken: AppToken;
createOneField: Field;
createOneObject: Object;
@@ -976,7 +968,6 @@ export type Mutation = {
deleteApprovedAccessDomain: Scalars['Boolean'];
deleteCurrentWorkspace: Workspace;
deleteDatabaseConfigVariable: Scalars['Boolean'];
- deleteOneAgent: Agent;
deleteOneField: Field;
deleteOneObject: Object;
deleteOneRole: Scalars['String'];
@@ -1105,11 +1096,6 @@ export type MutationCreateObjectEventArgs = {
};
-export type MutationCreateOneAgentArgs = {
- input: CreateAgentInput;
-};
-
-
export type MutationCreateOneFieldArgs = {
input: CreateOneFieldMetadataInput;
};
@@ -1150,11 +1136,6 @@ export type MutationDeleteDatabaseConfigVariableArgs = {
};
-export type MutationDeleteOneAgentArgs = {
- input: AgentIdInput;
-};
-
-
export type MutationDeleteOneFieldArgs = {
input: DeleteOneFieldInput;
};
@@ -1655,7 +1636,6 @@ export type Query = {
currentWorkspace: Workspace;
field: Field;
fields: FieldConnection;
- findManyAgents: Array;
findManyServerlessFunctions: Array;
findOneAgent: Agent;
findOneServerlessFunction: ServerlessFunction;
diff --git a/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx b/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx
index 1c0f10251..cf5d54739 100644
--- a/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx
+++ b/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx
@@ -8,10 +8,12 @@ import { Button } from 'twenty-ui/input';
import {
IconArrowUpRight,
IconBolt,
+ IconCopy,
IconPlus,
Status,
} from 'twenty-ui/display';
import { Pill } from 'twenty-ui/components';
+import { useCopyToClipboard } from '~/hooks/useCopyToClipboard';
interface SettingsIntegrationComponentProps {
integration: SettingsIntegration;
@@ -64,6 +66,7 @@ const StyledLogo = styled.img`
export const SettingsIntegrationComponent = ({
integration,
}: SettingsIntegrationComponentProps) => {
+ const { copyToClipboard } = useCopyToClipboard();
return (
+ ) : integration.type === 'Copy' ? (
+