[{"data":1,"prerenderedAt":1477},["ShallowReactive",2],{"nav-docs":3,"page-/docs/admin/ai/mcp-server":880,"surround-/docs/admin/ai/mcp-server":1471,"raw-/docs/admin/ai/mcp-server":1474},[4,56,226,546,634,773,806,863],{"title":5,"path":6,"stem":7,"children":8,"page":55},"Space Builder","/getting-started","00.getting-started",[9,13,17,23,29,33,38,42,46,50],{"title":10,"path":11,"stem":12,"children":-1},"Introducing SpaceBuilder","/getting-started/overview","00.getting-started/00.overview",{"title":14,"path":15,"stem":16,"children":-1},"Create a SetFN Account","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account",{"title":18,"path":19,"stem":20,"tags":21,"children":-1},"Installing on Linux","/getting-started/install-linux","00.getting-started/10.install-linux",[22],"recommended",{"title":24,"path":25,"stem":26,"tags":27,"children":-1},"Installing with Docker","/getting-started/install-docker","00.getting-started/12.install-docker",[28],"preparing",{"title":30,"path":31,"stem":32,"children":-1},"Installing on Windows","/getting-started/install-windows","00.getting-started/14.install-windows",{"title":34,"path":35,"stem":36,"tags":37,"children":-1},"Installing on macOS","/getting-started/install-macos","00.getting-started/16.install-macos",[28],{"title":39,"path":40,"stem":41,"children":-1},"Initial Setup","/getting-started/initial-setup","00.getting-started/20.initial-setup",{"title":43,"path":44,"stem":45,"children":-1},"License Activation","/getting-started/license-activation","00.getting-started/30.license-activation",{"title":47,"path":48,"stem":49,"children":-1},"Checking Your Access Address (Local/Internal Network)","/getting-started/access-url","00.getting-started/35.access-url",{"title":51,"path":52,"stem":53,"tags":54,"children":-1},"Choosing an External Access Method","/getting-started/access-domain","00.getting-started/40.access-domain",[22],false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Space management","/admin","10.admin",[61,74,107,136,171,184,209],{"title":62,"path":63,"stem":64,"children":65,"page":55},"Admin Home","/admin/home","10.admin/00.home",[66,70],{"title":67,"path":68,"stem":69,"children":-1},"Accessing the Admin Page","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access",{"title":71,"path":72,"stem":73,"children":-1},"License Management","/admin/home/license","10.admin/00.home/20.license",{"title":75,"path":76,"stem":77,"children":78,"page":55},"User management","/admin/user-management","10.admin/10.user-management",[79,83,87,91,95,99,103],{"title":80,"path":81,"stem":82,"children":-1},"Setting Signup Policy and Default Permissions","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy",{"title":84,"path":85,"stem":86,"children":-1},"Creating a User Account","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member",{"title":88,"path":89,"stem":90,"children":-1},"Editing a User Account","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member",{"title":92,"path":93,"stem":94,"children":-1},"Adding an Admin","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin",{"title":96,"path":97,"stem":98,"children":-1},"Team Management","/admin/user-management/team","10.admin/10.user-management/22.team",{"title":100,"path":101,"stem":102,"children":-1},"Level Management","/admin/user-management/level","10.admin/10.user-management/24.level",{"title":104,"path":105,"stem":106,"children":-1},"Checking Access Logs","/admin/user-management/access-log","10.admin/10.user-management/30.access-log",{"title":108,"path":109,"stem":110,"children":111,"page":55},"Service Configuration","/admin/service-config","10.admin/20.service-config",[112,116,120,124,128,132],{"title":113,"path":114,"stem":115,"children":-1},"File Area Settings","/admin/service-config/file-area","10.admin/20.service-config/10.file-area",{"title":117,"path":118,"stem":119,"children":-1},"Webhook Settings","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings",{"title":121,"path":122,"stem":123,"children":-1},"Community Settings","/admin/service-config/community-space","10.admin/20.service-config/22.community-space",{"title":125,"path":126,"stem":127,"children":-1},"AI Chatbot Policy Settings","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot",{"title":129,"path":130,"stem":131,"children":-1},"Email Settings","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings",{"title":133,"path":134,"stem":135,"children":-1},"Branding Settings","/admin/service-config/brand","10.admin/20.service-config/40.brand",{"title":137,"path":138,"stem":139,"children":140,"page":55},"Intelligent Service (AI)","/admin/ai","10.admin/30.ai",[141,145,149,153,159,163,167],{"title":142,"path":143,"stem":144,"children":-1},"AI Model Settings","/admin/ai/ai-model-setting","10.admin/30.ai/10.ai-model-setting",{"title":146,"path":147,"stem":148,"children":-1},"AI DB Settings","/admin/ai/ai-db-setting","10.admin/30.ai/20.ai-db-setting",{"title":150,"path":151,"stem":152,"children":-1},"Setting Up a Qdrant Server","/admin/ai/qdrant-server-setup","10.admin/30.ai/25.qdrant-server-setup",{"title":154,"path":155,"stem":156,"children":157},"Knowledge Indexing","/admin/ai/knowledge-indexing","10.admin/30.ai/30.knowledge-indexing",[158],{"title":154,"path":155,"stem":156,"children":-1},{"title":160,"path":161,"stem":162,"children":-1},"AI Integration and Policy Settings","/admin/ai/ai-link","10.admin/30.ai/40.ai-link",{"title":164,"path":165,"stem":166,"children":-1},"MCP Server Management","/admin/ai/mcp-server","10.admin/30.ai/50.mcp-server",{"title":168,"path":169,"stem":170,"children":-1},"Search Management","/admin/ai/search-management","10.admin/30.ai/60.search-management",{"title":172,"path":173,"stem":174,"children":175,"page":55},"plugin","/admin/plugin","10.admin/40.plugin",[176,180],{"title":177,"path":178,"stem":179,"children":-1},"Managing Plugins","/admin/plugin/overview","10.admin/40.plugin/00.overview",{"title":181,"path":182,"stem":183,"children":-1},"Extension Plugin Settings","/admin/plugin/settings","10.admin/40.plugin/10.settings",{"title":185,"path":186,"stem":187,"children":188,"page":55},"Security Management","/admin/security","10.admin/50.security",[189,193,197,201,205],{"title":190,"path":191,"stem":192,"children":-1},"Security Overview","/admin/security/overview","10.admin/50.security/00.overview",{"title":194,"path":195,"stem":196,"children":-1},"Checking the Audit Log","/admin/security/audit-log","10.admin/50.security/05.audit-log",{"title":198,"path":199,"stem":200,"children":-1},"Block Management","/admin/security/block-management","10.admin/50.security/10.block-management",{"title":202,"path":203,"stem":204,"children":-1},"Security Settings","/admin/security/security-setting","10.admin/50.security/12.security-setting",{"title":206,"path":207,"stem":208,"children":-1},"IP Access Restriction","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction",{"title":210,"path":211,"stem":212,"children":213,"page":55},"System management","/admin/system-admin","10.admin/60.system-admin",[214,218,222],{"title":215,"path":216,"stem":217,"children":-1},"Device Information","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info",{"title":219,"path":220,"stem":221,"children":-1},"Server Restart and System Maintenance","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart",{"title":223,"path":224,"stem":225,"children":-1},"Background Services","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service",{"title":227,"path":228,"stem":229,"children":230,"page":55},"Use workspace","/workspace","20.workspace",[231,264,281,337,448,495,527],{"title":232,"path":233,"stem":234,"children":235,"page":55},"menu","/workspace/menu","20.workspace/05.menu",[236,240,244,248,252,256,260],{"title":237,"path":238,"stem":239,"children":-1},"Workspace Overview","/workspace/menu/overview","20.workspace/05.menu/00.overview",{"title":241,"path":242,"stem":243,"children":-1},"Team Space","/workspace/menu/team-space","20.workspace/05.menu/05.team-space",{"title":245,"path":246,"stem":247,"children":-1},"Client Space","/workspace/menu/client-space","20.workspace/05.menu/06.client-space",{"title":249,"path":250,"stem":251,"children":-1},"Favorites","/workspace/menu/favorites","20.workspace/05.menu/10.favorites",{"title":253,"path":254,"stem":255,"children":-1},"Recent Documents","/workspace/menu/recent","20.workspace/05.menu/20.recent",{"title":257,"path":258,"stem":259,"children":-1},"External Share","/workspace/menu/external-share","20.workspace/05.menu/30.external-share",{"title":261,"path":262,"stem":263,"children":-1},"Trash","/workspace/menu/trash","20.workspace/05.menu/40.trash",{"title":265,"path":266,"stem":267,"children":268,"page":55},"Account","/workspace/account","20.workspace/10.account",[269,273,277],{"title":270,"path":271,"stem":272,"children":-1},"Sign Up and Log In","/workspace/account/signup","20.workspace/10.account/10.signup",{"title":274,"path":275,"stem":276,"children":-1},"Resetting Your Password","/workspace/account/reset-password","20.workspace/10.account/20.reset-password",{"title":278,"path":279,"stem":280,"children":-1},"Account Settings","/workspace/account/account-settings","20.workspace/10.account/30.account-settings",{"title":282,"path":283,"stem":284,"children":285,"page":55},"folder","/workspace/folder","20.workspace/20.folder",[286,290,294,298,302,308,312,316,321,325,329,333],{"title":287,"path":288,"stem":289,"children":-1},"Folder Basics","/workspace/folder/basic","20.workspace/20.folder/10.basic",{"title":291,"path":292,"stem":293,"children":-1},"Creating Multiple Folders at Once","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation",{"title":295,"path":296,"stem":297,"children":-1},"Filter","/workspace/folder/filter","20.workspace/20.folder/13.filter",{"title":299,"path":300,"stem":301,"children":-1},"Configuring Folder View Options","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options",{"title":303,"path":304,"stem":305,"tags":306,"children":-1},"Folder Web View","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view",[307],"hot",{"title":309,"path":310,"stem":311,"children":-1},"Folder Organization","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize",{"title":313,"path":314,"stem":315,"children":-1},"Folder Notice (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme",{"title":317,"path":318,"stem":319,"tags":320,"children":-1},"Exporting Folder/File Lists","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export",[307],{"title":322,"path":323,"stem":324,"children":-1},"Setting Level-Based Access Permissions","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions",{"title":326,"path":327,"stem":328,"children":-1},"Setting Team-Based Access Permissions","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions",{"title":330,"path":331,"stem":332,"children":-1},"Folder Webhooks","/workspace/folder/webhook","20.workspace/20.folder/30.webhook",{"title":334,"path":335,"stem":336,"children":-1},"Work Automation Folder","/workspace/folder/automation","20.workspace/20.folder/40.automation",{"title":338,"path":339,"stem":340,"children":341,"page":55},"file","/workspace/file","20.workspace/30.file",[342,346,351,355,359,363,367,371,375,379,384,388,392,396,400,404,408,412,416,420,424,428,432,436,440,444],{"title":343,"path":344,"stem":345,"children":-1},"File Management Basics","/workspace/file/overview","20.workspace/30.file/00.overview",{"title":347,"path":348,"stem":349,"tags":350,"children":-1},"Checking the List While Viewing a File","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file",[307],{"title":352,"path":353,"stem":354,"children":-1},"Register disk files","/workspace/file/disk-file-registration","20.workspace/30.file/06.disk-file-registration",{"title":356,"path":357,"stem":358,"children":-1},"Viewing and Editing Text Files","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer",{"title":360,"path":361,"stem":362,"children":-1},"Viewing HTML Files","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer",{"title":364,"path":365,"stem":366,"children":-1},"Viewing and Editing CSV Files","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer",{"title":368,"path":369,"stem":370,"children":-1},"Viewing Image/Video Files","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer",{"title":372,"path":373,"stem":374,"children":-1},"Viewing Office/PDF Files","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer",{"title":376,"path":377,"stem":378,"children":-1},"Pasting Web Pages (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html",{"title":380,"path":381,"stem":382,"tags":383,"children":-1},"Pasting Screenshots","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot",[307],{"title":385,"path":386,"stem":387,"children":-1},"Pasting Markdown (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md",{"title":389,"path":390,"stem":391,"children":-1},"Screen Recording","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording",{"title":393,"path":394,"stem":395,"children":-1},"File Tags","/workspace/file/file-tag","20.workspace/30.file/33.file-tag",{"title":397,"path":398,"stem":399,"children":-1},"Bulk Renaming Files","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise",{"title":401,"path":402,"stem":403,"children":-1},"File Conversion","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview",{"title":405,"path":406,"stem":407,"children":-1},"Template Files","/workspace/file/templates","20.workspace/30.file/41.templates",{"title":409,"path":410,"stem":411,"children":-1},"To-Do List","/workspace/file/template-todo","20.workspace/30.file/42.template-todo",{"title":413,"path":414,"stem":415,"children":-1},"Approval Form","/workspace/file/template-approval","20.workspace/30.file/43.template-approval",{"title":417,"path":418,"stem":419,"children":-1},"Kanban Board","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban",{"title":421,"path":422,"stem":423,"children":-1},"Timeline","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline",{"title":425,"path":426,"stem":427,"children":-1},"Memo","/workspace/file/template-memo","20.workspace/30.file/46.template-memo",{"title":429,"path":430,"stem":431,"children":-1},"AI Chat File","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":433,"path":434,"stem":435,"children":-1},"Checking the File Change History","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail",{"title":437,"path":438,"stem":439,"children":-1},"File Version Control","/workspace/file/version-trail","20.workspace/30.file/51.version-trail",{"title":441,"path":442,"stem":443,"children":-1},"Edit Lock","/workspace/file/file-lock","20.workspace/30.file/52.file-lock",{"title":445,"path":446,"stem":447,"children":-1},"File Encryption","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt",{"title":449,"path":450,"stem":451,"children":452,"page":55},"Collaboration","/workspace/cooperation","20.workspace/35.cooperation",[453,457,461,465,470,474,478,482,487,491],{"title":454,"path":455,"stem":456,"children":-1},"File/Folder Comments","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments",{"title":458,"path":459,"stem":460,"children":-1},"Chat","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat",{"title":462,"path":463,"stem":464,"children":-1},"Collaboration Chat and Edit Lock","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat",{"title":466,"path":467,"stem":468,"tags":469,"children":-1},"Following a Team Member's Location","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location",[307],{"title":471,"path":472,"stem":473,"children":-1},"Mentions","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention",{"title":475,"path":476,"stem":477,"children":-1},"Direct Messages","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm",{"title":479,"path":480,"stem":481,"children":-1},"Notification Inbox","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox",{"title":483,"path":484,"stem":485,"tags":486,"children":-1},"Checking Team Activity","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity",[307],{"title":488,"path":489,"stem":490,"children":-1},"Creating an External Share Link","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",{"title":492,"path":493,"stem":494,"children":-1},"Sending an External Share Link by Email","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email",{"title":496,"path":497,"stem":498,"children":499,"page":55},"Search","/workspace/search","20.workspace/40.search",[500,504,509,515,519,523],{"title":501,"path":502,"stem":503,"children":-1},"File Search","/workspace/search/search","20.workspace/40.search/00.search",{"title":505,"path":506,"stem":507,"tags":508,"children":-1},"Context Search (AI Search)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[307],{"title":510,"path":511,"stem":512,"tags":513,"children":-1},"Image Search","/workspace/search/image-search","20.workspace/40.search/20.image-search",[514],"new",{"title":516,"path":517,"stem":518,"children":-1},"Chat Search","/workspace/search/chat-search","20.workspace/40.search/30.chat-search",{"title":520,"path":521,"stem":522,"children":-1},"Comment Search","/workspace/search/comment-search","20.workspace/40.search/40.comment-search",{"title":524,"path":525,"stem":526,"children":-1},"Synonym Search","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search",{"title":528,"path":529,"stem":530,"children":531,"page":55},"AI","/workspace/ai","20.workspace/50.ai",[532,536,541],{"title":533,"path":534,"stem":535,"children":-1},"AI Features Summary","/workspace/ai/overview","20.workspace/50.ai/00.overview",{"title":537,"path":538,"stem":539,"tags":540,"children":-1},"Requesting Work from the Local AI","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[307],{"title":542,"path":543,"stem":544,"tags":545,"children":-1},"Using External AI","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai",[514],{"title":547,"path":548,"stem":549,"children":550,"page":55},"Webspace","/webspace","40.webspace",[551,555,559,563,567,571,576,580,584,588,592,621],{"title":552,"path":553,"stem":554,"children":-1},"What is WebSpace?","/webspace/overview","40.webspace/00.overview",{"title":556,"path":557,"stem":558,"children":-1},"Deploying a Website","/webspace/website-release","40.webspace/10.website-release",{"title":560,"path":561,"stem":562,"children":-1},"Create a schema file (.sfn)","/webspace/create-database","40.webspace/20.create-database",{"title":564,"path":565,"stem":566,"children":-1},"Build APIs and deploy a database","/webspace/api-overview","40.webspace/24.api-overview",{"title":568,"path":569,"stem":570,"children":-1},"Checking the Frontend Sample","/webspace/frontend-example","40.webspace/26.frontend-example",{"title":572,"path":573,"stem":574,"tags":575,"children":-1},"Building an Internal Team Web Service","/webspace/internal-webservice","40.webspace/32.internal-webservice",[307],{"title":577,"path":578,"stem":579,"children":-1},"Building a Publicly Accessible Web Service","/webspace/external-webservice","40.webspace/34.external-webservice",{"title":581,"path":582,"stem":583,"children":-1},"Import and export SQL","/webspace/sql-converter","40.webspace/42.sql-converter",{"title":585,"path":586,"stem":587,"children":-1},"Developer Tip 2: Code Converter","/webspace/code-converter","40.webspace/44.code-converter",{"title":589,"path":590,"stem":591,"children":-1},"Performance and scaling","/webspace/performance","40.webspace/48.performance",{"title":593,"path":594,"stem":595,"children":596,"page":55},"Webspace Management","/webspace/admin","40.webspace/50.admin",[597,601,605,609,613,617],{"title":598,"path":599,"stem":600,"children":-1},"Get started with WebSpace administration","/webspace/admin/overview","40.webspace/50.admin/00.overview",{"title":602,"path":603,"stem":604,"children":-1},"Operations","/webspace/admin/operations","40.webspace/50.admin/10.operations",{"title":606,"path":607,"stem":608,"children":-1},"Workspace access","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access",{"title":610,"path":611,"stem":612,"children":-1},"API & site security","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security",{"title":614,"path":615,"stem":616,"children":-1},"Services and capacity","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity",{"title":618,"path":619,"stem":620,"children":-1},"Deployment management and frontend releases","/webspace/admin/deployments","40.webspace/50.admin/50.deployments",{"title":622,"path":623,"stem":624,"children":625,"page":55},"Try WebSpace","/webspace/examples","40.webspace/60.examples",[626,630],{"title":627,"path":628,"stem":629,"children":-1},"WebSpace examples","/webspace/examples/overview","40.webspace/60.examples/00.overview",{"title":631,"path":632,"stem":633,"children":-1},"Build a real-time Gomoku game","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",{"title":635,"path":636,"stem":637,"children":638,"page":55},"Using plugin","/plugin","50.plugin",[639,643,660,704,722,752],{"title":640,"path":641,"stem":642,"children":-1},"Plugin Overview","/plugin/overview","50.plugin/00.overview",{"title":644,"path":645,"stem":646,"children":647,"page":55},"Calendar","/plugin/calendar","50.plugin/10.calendar",[648,652,656],{"title":649,"path":650,"stem":651,"children":-1},"Calendar Introduction","/plugin/calendar/overview","50.plugin/10.calendar/00.overview",{"title":653,"path":654,"stem":655,"children":-1},"Creating, Editing, and Deleting Events","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event",{"title":657,"path":658,"stem":659,"children":-1},"Checking Activity History","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity",{"title":661,"path":662,"stem":663,"children":664,"page":55},"Email","/plugin/email","50.plugin/20.email",[665,669,672,676,680,684,688,692,696,700],{"title":666,"path":667,"stem":668,"children":-1},"Email Introduction","/plugin/email/overview","50.plugin/20.email/00.overview",{"title":129,"path":670,"stem":671,"children":-1},"/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting",{"title":673,"path":674,"stem":675,"children":-1},"Connect an External Email Account","/plugin/email/external-email","50.plugin/20.email/07.external-email",{"title":677,"path":678,"stem":679,"children":-1},"Basic Email Functionality","/plugin/email/email-basic","50.plugin/20.email/10.email-basic",{"title":681,"path":682,"stem":683,"children":-1},"Composing and Sending Email","/plugin/email/email-compose","50.plugin/20.email/20.email-compose",{"title":685,"path":686,"stem":687,"children":-1},"Attaching Files","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment",{"title":689,"path":690,"stem":691,"children":-1},"Mail Folder Management","/plugin/email/email-folders","50.plugin/20.email/40.email-folders",{"title":693,"path":694,"stem":695,"children":-1},"Automatic Email Classification","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify",{"title":697,"path":698,"stem":699,"children":-1},"Email File Archiving and Sharing","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space",{"title":701,"path":702,"stem":703,"children":-1},"Email Security","/plugin/email/email-security","50.plugin/20.email/70.email-security",{"title":705,"path":706,"stem":707,"children":708,"page":55},"Workflow","/plugin/workflow","50.plugin/30.workflow",[709,713,718],{"title":710,"path":711,"stem":712,"children":-1},"Workflow Introduction","/plugin/workflow/overview","50.plugin/30.workflow/00.overview",{"title":714,"path":715,"stem":716,"tags":717,"children":-1},"Creating a New Workflow","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[307],{"title":719,"path":720,"stem":721,"children":-1},"Checking Execution History","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history",{"title":723,"path":724,"stem":725,"children":726,"page":55},"Pinetuning (AI learning)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[727,732,736,740,744,748],{"title":728,"path":729,"stem":730,"tags":731,"children":-1},"Fine-tuning Introduction","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview",[307],{"title":733,"path":734,"stem":735,"children":-1},"Preprocessing Training Data","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing",{"title":737,"path":738,"stem":739,"children":-1},"Training","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training",{"title":741,"path":742,"stem":743,"children":-1},"Evaluation","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation",{"title":745,"path":746,"stem":747,"children":-1},"Chat Test","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test",{"title":749,"path":750,"stem":751,"children":-1},"Export","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export",{"title":753,"path":754,"stem":755,"children":756,"page":55},"EDC (data collection)","/plugin/edc","50.plugin/50.edc",[757,761,765,769],{"title":758,"path":759,"stem":760,"children":-1},"EDC Introduction","/plugin/edc/overview","50.plugin/50.edc/00.overview",{"title":762,"path":763,"stem":764,"children":-1},"Data Entry, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry",{"title":766,"path":767,"stem":768,"children":-1},"Builder","/plugin/edc/builder","50.plugin/50.edc/20.builder",{"title":770,"path":771,"stem":772,"children":-1},"User/Site Settings","/plugin/edc/account","50.plugin/50.edc/30.account",{"title":774,"path":775,"stem":776,"children":777,"page":55},"FAQ","/faq","99.FAQ",[778,782,786,790,794,798,802],{"title":779,"path":780,"stem":781,"children":-1},"SetFN vs Cloud Services Comparison","/faq/comparison-cloud","99.FAQ/10.comparison-cloud",{"title":783,"path":784,"stem":785,"children":-1},"SetFN vs NAS Comparison","/faq/comparison-nas","99.FAQ/20.comparison-nas",{"title":787,"path":788,"stem":789,"children":-1},"Security Policy","/faq/security-policy","99.FAQ/30.security-policy",{"title":791,"path":792,"stem":793,"children":-1},"Why Is SetFN Fast","/faq/why-fast","99.FAQ/40.why-fast",{"title":795,"path":796,"stem":797,"children":-1},"License FAQ","/faq/license-faq","99.FAQ/50.license-faq",{"title":799,"path":800,"stem":801,"children":-1},"AI Features FAQ","/faq/ai-faq","99.FAQ/60.ai-faq",{"title":803,"path":804,"stem":805,"children":-1},"Troubleshooting Guide","/faq/troubleshooting","99.FAQ/70.troubleshooting",{"title":807,"path":808,"stem":809,"children":810,"page":55},"Applied (draft)","/draft","draft",[811,815,819,823,827,831,835,839,843,847,851,855,859],{"title":812,"path":813,"stem":814,"children":-1},"Example 1. Building an Introduction Page","/draft/static-intro","draft/05.static-intro",{"title":816,"path":817,"stem":818,"children":-1},"Example 2. Building a Notice Board","/draft/public-notice-board","draft/07.public-notice-board",{"title":820,"path":821,"stem":822,"children":-1},"Example 3. Building a Coffee Chat Booking System","/draft/coffee-chat-booking","draft/08.coffee-chat-booking",{"title":824,"path":825,"stem":826,"children":-1},"Example 4. Building a Leave Request System","/draft/leave-request","draft/09.leave-request",{"title":828,"path":829,"stem":830,"children":-1},"Example 5. Building Real-Time Team Chat","/draft/team-chat","draft/10.team-chat",{"title":832,"path":833,"stem":834,"children":-1},"Example 6. Building a Job Application Intake","/draft/client-submission","draft/11.client-submission",{"title":836,"path":837,"stem":838,"children":-1},"Example 7. Building an Issue Tracker with Team and Level Conditions","/draft/crm-basic","draft/12.crm-basic",{"title":840,"path":841,"stem":842,"children":-1},"Example 8. Building a Status Filter and Stats Summary Screen","/draft/crm-search-filter","draft/13.crm-search-filter",{"title":844,"path":845,"stem":846,"children":-1},"Example 9. Building Real-Time Community Chat with Moderation","/draft/community-moderation","draft/14.community-moderation",{"title":848,"path":849,"stem":850,"children":-1},"Example 10. Building a Real-Time Attendance Check / Poll","/draft/attendance-poll","draft/15.attendance-poll",{"title":852,"path":853,"stem":854,"children":-1},"Example 11. Building a Debate Battle","/draft/debate-battle","draft/16.debate-battle",{"title":856,"path":857,"stem":858,"children":-1},"Example 13. Building an Announcement Read Receipt","/draft/announcement-read","draft/18.announcement-read",{"title":860,"path":861,"stem":862,"children":-1},"Example 14. Building an Inventory Management System","/draft/inventory-management","draft/19.inventory-management",{"title":864,"path":865,"stem":866,"children":867,"page":55},"SJAUTO","/sjauto","sjauto",[868,872,876],{"title":869,"path":870,"stem":871,"children":-1},"Access the Administrator Page","/sjauto/admin-page-access","sjauto/00.admin-page-access",{"title":873,"path":874,"stem":875,"children":-1},"Sign Up and Sign In","/sjauto/signup","sjauto/10.signup",{"title":877,"path":878,"stem":879,"children":-1},"AI Chat Files","/sjauto/ai-chat-file","sjauto/ai-chat-file",{"id":881,"title":164,"body":882,"cover":1454,"description":1455,"extension":1456,"image":1454,"meta":1457,"navigation":1459,"path":165,"seo":1460,"stem":166,"tags":1454,"thumbnail":1454,"__hash__":1470},"docs_en/10.admin/30.ai/50.mcp-server.md",{"type":883,"value":884,"toc":1447},"minimal",[885,889,902,908,915,918,921,926,929,1015,1018,1024,1049,1054,1091,1096,1112,1117,1133,1138,1175,1179,1184,1191,1195,1206,1209,1254,1257,1267,1274,1320,1362,1372,1383,1413,1419,1423,1431,1435,1443],[886,887,164],"h1",{"id":888},"mcp-server-management",[890,891,892,893,897,898,901],"p",{},"An MCP server is a server that lets external AI clients such as ",[894,895,896],"code",{},"Codex"," and ",[894,899,900],{},"Claude Code"," call workspace features—files, search, team activity, and more—in a standardized way.",[903,904,905],"danger",{},[890,906,907],{},"When using MCP features, data such as document content may be sent to an external AI provider.\nPlease pay attention to data security.",[890,909,910],{},[911,912],"img",{"alt":913,"src":914},"MCP server","./_screenshots/mcp-server_en.png",[890,916,917],{},"Management happens in two stages. First, the admin defines the maximum scope allowed across the whole organization, and then each user configures narrower permissions on the keys they issue, within that scope.",[919,920],"hr",{},[922,923,925],"h2",{"id":924},"_1-organization-wide-feature-settings","1. Organization-Wide Feature Settings",[890,927,928],{},"Define the maximum allowed scope that applies to all external AI connections. Features not allowed here cannot be enabled by users on their individual keys either.",[930,931,932,948],"table",{},[933,934,935],"thead",{},[936,937,938,942,945],"tr",{},[939,940,941],"th",{},"Allowed Tool",[939,943,944],{},"Description",[939,946,947],{},"Count",[949,950,951,963,974,985,995,1005],"tbody",{},[936,952,953,957,960],{},[954,955,956],"td",{},"Basic information",[954,958,959],{},"Checks the current location, time, and task approval status.",[954,961,962],{},"3",[936,964,965,968,971],{},[954,966,967],{},"Read files",[954,969,970],{},"Views folder and file contents.",[954,972,973],{},"5",[936,975,976,979,982],{},[954,977,978],{},"File/document search",[954,980,981],{},"Finds material by file name or document content.",[954,983,984],{},"2",[936,986,987,990,993],{},[954,988,989],{},"Team information",[954,991,992],{},"Looks up team conversations and activity history. Related content may be sent to the external AI provider.",[954,994,984],{},[936,996,997,1000,1003],{},[954,998,999],{},"Change files/folders",[954,1001,1002],{},"Creates, edits, and moves files and folders.",[954,1004,973],{},[936,1006,1007,1009,1012],{},[954,1008,261],{},[954,1010,1011],{},"Moves approved files to a recoverable trash. Folders are not supported.",[954,1013,1014],{},"1",[890,1016,1017],{},"Each allowed tool consists of the following detailed features (tools).",[890,1019,1020],{},[1021,1022,1023],"strong",{},"Basic Information",[1025,1026,1027,1035,1042],"ul",{},[1028,1029,1030,1031,1034],"li",{},"Check task approval status (",[894,1032,1033],{},"getApprovalStatus","): Checks whether a change task is allowed to proceed · a required tool for the approval flow",[1028,1036,1037,1038,1041],{},"Check current location (",[894,1039,1040],{},"getCurrentPath","): Checks the currently viewed virtual folder location",[1028,1043,1044,1045,1048],{},"Check current time (",[894,1046,1047],{},"getCurrentTime","): Checks the server's current date and time",[890,1050,1051],{},[1021,1052,1053],{},"Read Files",[1025,1055,1056,1063,1070,1077,1084],{},[1028,1057,1058,1059,1062],{},"View folder contents (",[894,1060,1061],{},"listResources","): Checks the files and subfolders within a folder",[1028,1064,1065,1066,1069],{},"Read file (",[894,1067,1068],{},"readFile","): Reads file contents or gets the download address for a large file",[1028,1071,1072,1073,1076],{},"Read large text file (",[894,1074,1075],{},"readTextFileRange","): Reads a large text file in parts",[1028,1078,1079,1080,1083],{},"View favorites (",[894,1081,1082],{},"listFavoriteResources","): Checks documents registered as favorites",[1028,1085,1086,1087,1090],{},"View recent documents (",[894,1088,1089],{},"listRecentResources","): Checks recently opened documents",[890,1092,1093],{},[1021,1094,1095],{},"File/Document Search",[1025,1097,1098,1105],{},[1028,1099,1100,1101,1104],{},"Find files (",[894,1102,1103],{},"internalFindFiles","): Finds files by name or file type",[1028,1106,1107,1108,1111],{},"Search document content (",[894,1109,1110],{},"internalSearchContent","): Quickly searches for content within documents",[890,1113,1114],{},[1021,1115,1116],{},"Team Information",[1025,1118,1119,1126],{},[1028,1120,1121,1122,1125],{},"Search team conversations (",[894,1123,1124],{},"searchChat","): Finds content within team conversations you can view",[1028,1127,1128,1129,1132],{},"Check team activity history (",[894,1130,1131],{},"getAuditLogs","): Checks the task history of teams you can view",[890,1134,1135],{},[1021,1136,1137],{},"Change Files/Folders",[1025,1139,1140,1147,1154,1161,1168],{},[1028,1141,1142,1143,1146],{},"Apply a partial text edit (",[894,1144,1145],{},"applyPatch","): Edits only the necessary parts of text so it doesn't conflict with other changes",[1028,1148,1149,1150,1153],{},"Create folder (",[894,1151,1152],{},"createFolder","): Creates a new folder",[1028,1155,1156,1157,1160],{},"Create file (",[894,1158,1159],{},"createFile","): Creates a new file",[1028,1162,1163,1164,1167],{},"Update file content (",[894,1165,1166],{},"updateFile","): Edits the content of an existing file",[1028,1169,1170,1171,1174],{},"Move file/folder (",[894,1172,1173],{},"moveFile","): Moves the location of a file or folder",[890,1176,1177],{},[1021,1178,261],{},[1025,1180,1181],{},[1028,1182,1183],{},"Move file to trash: Moves a file to trash after approval",[890,1185,1186,1187,1190],{},"You can adjust all tools at once with Select All/Deselect All, or configure them individually per tool. After configuring, click the ",[894,1188,1189],{},"Save"," button.",[922,1192,1194],{"id":1193},"_2-per-user-external-ai-connection-keys","2. Per-User External AI Connection Keys",[890,1196,1197,1198,1201,1202,1205],{},"Each user can issue keys for specific purposes within the scope allowed by the organization, and can further restrict which tasks and spaces each key can access. Click ",[894,1199,1200],{},"Issue Key"," under ",[894,1203,1204],{},"My External AI Connection Keys",".",[890,1207,1208],{},"When issuing a key, you can configure the following.",[930,1210,1211,1220],{},[933,1212,1213],{},[936,1214,1215,1218],{},[939,1216,1217],{},"Item",[939,1219,944],{},[949,1221,1222,1230,1238,1246],{},[936,1223,1224,1227],{},[954,1225,1226],{},"Expiration date",[954,1228,1229],{},"Specifies the period during which this key is valid.",[936,1231,1232,1235],{},[954,1233,1234],{},"Allowed task scope",[954,1236,1237],{},"Narrows down which of the organization's allowed tools this key can actually use.",[936,1239,1240,1243],{},[954,1241,1242],{},"Space",[954,1244,1245],{},"Specifies the team folder or personal folder this key can access.",[936,1247,1248,1251],{},[954,1249,1250],{},"Path",[954,1252,1253],{},"Specifies the folder path allowed for access.",[890,1255,1256],{},"Once a key is issued, the MCP endpoint and CLI setup command are provided together.",[1258,1259,1264],"pre",{"className":1260,"code":1262,"language":1263},[1261],"language-text","MCP endpoint: https://[your address].setfn.me/api/mcp\n","text",[894,1265,1262],{"__ignoreMap":1266},"",[890,1268,1269,1270,1273],{},"First, set the issued key as the ",[894,1271,1272],{},"SETFN_MCP_TOKEN"," environment variable, then register it using the command appropriate for the client you're using.",[1258,1275,1279],{"className":1276,"code":1277,"language":1278,"meta":1266,"style":1266},"language-bash shiki shiki-themes github-light github-dark monokai","# Codex CLI\ncodex mcp add setfn --url \"https://[your address].setfn.me/api/mcp\" --bearer-token-env-var SETFN_MCP_TOKEN\n","bash",[894,1280,1281,1290],{"__ignoreMap":1266},[1282,1283,1286],"span",{"class":1284,"line":1285},"line",1,[1282,1287,1289],{"class":1288},"s8-w5","# Codex CLI\n",[1282,1291,1293,1297,1301,1304,1307,1311,1314,1317],{"class":1284,"line":1292},2,[1282,1294,1296],{"class":1295},"srTi1","codex",[1282,1298,1300],{"class":1299},"sstjo"," mcp",[1282,1302,1303],{"class":1299}," add",[1282,1305,1306],{"class":1299}," setfn",[1282,1308,1310],{"class":1309},"s7F3e"," --url",[1282,1312,1313],{"class":1299}," \"https://[your address].setfn.me/api/mcp\"",[1282,1315,1316],{"class":1309}," --bearer-token-env-var",[1282,1318,1319],{"class":1299}," SETFN_MCP_TOKEN\n",[1258,1321,1323],{"className":1276,"code":1322,"language":1278,"meta":1266,"style":1266},"# Claude Code\nclaude mcp add --transport http setfn \"https://[your address].setfn.me/api/mcp\" --header \"Authorization: Bearer $SETFN_MCP_TOKEN\"\n",[894,1324,1325,1330],{"__ignoreMap":1266},[1282,1326,1327],{"class":1284,"line":1285},[1282,1328,1329],{"class":1288},"# Claude Code\n",[1282,1331,1332,1335,1337,1339,1342,1345,1347,1349,1352,1355,1359],{"class":1284,"line":1292},[1282,1333,1334],{"class":1295},"claude",[1282,1336,1300],{"class":1299},[1282,1338,1303],{"class":1299},[1282,1340,1341],{"class":1309}," --transport",[1282,1343,1344],{"class":1299}," http",[1282,1346,1306],{"class":1299},[1282,1348,1313],{"class":1299},[1282,1350,1351],{"class":1309}," --header",[1282,1353,1354],{"class":1299}," \"Authorization: Bearer ",[1282,1356,1358],{"class":1357},"sMOD_","$SETFN_MCP_TOKEN",[1282,1360,1361],{"class":1299},"\"\n",[890,1363,1364,1365,1368,1369,1371],{},"You can use the ",[894,1366,1367],{},"Copy CLI Setup"," button to copy the above configuration as-is. Once registered this way, whether it's ",[894,1370,896],{}," or another MCP client, it can immediately call workspace features within the permission scope of the issued key.",[890,1373,1374,1375,1378,1379,1382],{},"Even after issuing a key, you can ",[1021,1376,1377],{},"rotate"," or ",[1021,1380,1381],{},"revoke"," it at any time.",[930,1384,1385,1395],{},[933,1386,1387],{},[936,1388,1389,1392],{},[939,1390,1391],{},"Action",[939,1393,1394],{},"Meaning",[949,1396,1397,1405],{},[936,1398,1399,1402],{},[954,1400,1401],{},"Rotate",[954,1403,1404],{},"Invalidates the existing key and issues a new key with the same configuration (permissions, space, path). This is a safe way to replace a key that may have been exposed, without breaking the integration.",[936,1406,1407,1410],{},[954,1408,1409],{},"Revoke",[954,1411,1412],{},"Immediately invalidates the key. No further requests can be authenticated with this key.",[890,1414,1415,1416,1418],{},"When you rotate a key, you must also update the ",[894,1417,1272],{}," value and the key registered with the client to the newly issued value.",[922,1420,1422],{"id":1421},"security-precautions","Security Precautions",[1025,1424,1425,1428],{},[1028,1426,1427],{},"We recommend not exposing the MCP endpoint directly to the outside. If external integration is required, apply HTTPS, authentication tokens, IP restrictions, and permission scope limits, and restrict callable tools to only the necessary scope.",[1028,1429,1430],{},"In particular, it is safer to use MCP servers connected to high-impact tools—such as file access, code execution, sending email, or running workflows—only from an internal network or a trusted network.",[922,1432,1434],{"id":1433},"related-documents","Related Documents",[1025,1436,1437],{},[1028,1438,1439],{},[1440,1441,278],"a",{"href":1442},"../../workspace/account/account-settings",[1444,1445,1446],"style",{},"html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}",{"title":1266,"searchDepth":1292,"depth":1448,"links":1449},3,[1450,1451,1452,1453],{"id":924,"depth":1292,"text":925},{"id":1193,"depth":1292,"text":1194},{"id":1421,"depth":1292,"text":1422},{"id":1433,"depth":1292,"text":1434},null,"Explains how admins define the maximum organization-wide allowed scope, and how each user issues an external AI connection key within that scope, so that external AI clients such as Codex and Claude Code can call workspace features via MCP.","md",{"slug":1458},"/admin/ai/mcp-server/",true,{"title":1461,"description":1455,"ogType":1462,"twitterCard":1463,"keywords":1464},"MCP Server Management | Admin Docs","article","summary_large_image",[1465,1466,1467,1468,1469,896,900],"MCP server management","MCP","Organization-wide feature settings","Per-user external AI connection keys","Key issuance","uncZYw0z7CrTMug336V70oNVsDXpB4qq6FNCQZR1Rn8",[1472,1473],{"title":160,"path":161,"stem":162,"children":-1},{"title":168,"path":169,"stem":170,"children":-1},{"title":164,"filename":1475,"content":1476},"mcp-server","# MCP Server Management\n\nAn MCP server is a server that lets external AI clients such as `Codex` and `Claude Code` call workspace features—files, search, team activity, and more—in a standardized way.\n\n::danger\nWhen using MCP features, data such as document content may be sent to an external AI provider.\nPlease pay attention to data security.\n::\n\n![MCP server](./_screenshots/mcp-server_en.png)\n\nManagement happens in two stages. First, the admin defines the maximum scope allowed across the whole organization, and then each user configures narrower permissions on the keys they issue, within that scope.\n\n---\n\n## 1. Organization-Wide Feature Settings\n\nDefine the maximum allowed scope that applies to all external AI connections. Features not allowed here cannot be enabled by users on their individual keys either.\n\n| Allowed Tool | Description | Count |\n|------|------|------|\n| Basic information | Checks the current location, time, and task approval status. | 3 |\n| Read files | Views folder and file contents. | 5 |\n| File/document search | Finds material by file name or document content. | 2 |\n| Team information | Looks up team conversations and activity history. Related content may be sent to the external AI provider. | 2 |\n| Change files/folders | Creates, edits, and moves files and folders. | 5 |\n| Trash | Moves approved files to a recoverable trash. Folders are not supported. | 1 |\n\nEach allowed tool consists of the following detailed features (tools).\n\n**Basic Information**\n- Check task approval status (`getApprovalStatus`): Checks whether a change task is allowed to proceed · a required tool for the approval flow\n- Check current location (`getCurrentPath`): Checks the currently viewed virtual folder location\n- Check current time (`getCurrentTime`): Checks the server's current date and time\n\n**Read Files**\n- View folder contents (`listResources`): Checks the files and subfolders within a folder\n- Read file (`readFile`): Reads file contents or gets the download address for a large file\n- Read large text file (`readTextFileRange`): Reads a large text file in parts\n- View favorites (`listFavoriteResources`): Checks documents registered as favorites\n- View recent documents (`listRecentResources`): Checks recently opened documents\n\n**File/Document Search**\n- Find files (`internalFindFiles`): Finds files by name or file type\n- Search document content (`internalSearchContent`): Quickly searches for content within documents\n\n**Team Information**\n- Search team conversations (`searchChat`): Finds content within team conversations you can view\n- Check team activity history (`getAuditLogs`): Checks the task history of teams you can view\n\n**Change Files/Folders**\n- Apply a partial text edit (`applyPatch`): Edits only the necessary parts of text so it doesn't conflict with other changes\n- Create folder (`createFolder`): Creates a new folder\n- Create file (`createFile`): Creates a new file\n- Update file content (`updateFile`): Edits the content of an existing file\n- Move file/folder (`moveFile`): Moves the location of a file or folder\n\n**Trash**\n- Move file to trash: Moves a file to trash after approval\n\nYou can adjust all tools at once with Select All/Deselect All, or configure them individually per tool. After configuring, click the `Save` button.\n\n## 2. Per-User External AI Connection Keys\n\nEach user can issue keys for specific purposes within the scope allowed by the organization, and can further restrict which tasks and spaces each key can access. Click `Issue Key` under `My External AI Connection Keys`.\n\nWhen issuing a key, you can configure the following.\n\n| Item | Description |\n|------|------|\n| Expiration date | Specifies the period during which this key is valid. |\n| Allowed task scope | Narrows down which of the organization's allowed tools this key can actually use. |\n| Space | Specifies the team folder or personal folder this key can access. |\n| Path | Specifies the folder path allowed for access. |\n\nOnce a key is issued, the MCP endpoint and CLI setup command are provided together.\n\n```\nMCP endpoint: https://[your address].setfn.me/api/mcp\n```\n\nFirst, set the issued key as the `SETFN_MCP_TOKEN` environment variable, then register it using the command appropriate for the client you're using.\n\n```bash\n# Codex CLI\ncodex mcp add setfn --url \"https://[your address].setfn.me/api/mcp\" --bearer-token-env-var SETFN_MCP_TOKEN\n```\n```bash\n# Claude Code\nclaude mcp add --transport http setfn \"https://[your address].setfn.me/api/mcp\" --header \"Authorization: Bearer $SETFN_MCP_TOKEN\"\n```\n\nYou can use the `Copy CLI Setup` button to copy the above configuration as-is. Once registered this way, whether it's `Codex` or another MCP client, it can immediately call workspace features within the permission scope of the issued key.\n\nEven after issuing a key, you can **rotate** or **revoke** it at any time.\n\n| Action | Meaning |\n|------|------|\n| Rotate | Invalidates the existing key and issues a new key with the same configuration (permissions, space, path). This is a safe way to replace a key that may have been exposed, without breaking the integration. |\n| Revoke | Immediately invalidates the key. No further requests can be authenticated with this key. |\n\nWhen you rotate a key, you must also update the `SETFN_MCP_TOKEN` value and the key registered with the client to the newly issued value.\n\n## Security Precautions\n\n- We recommend not exposing the MCP endpoint directly to the outside. If external integration is required, apply HTTPS, authentication tokens, IP restrictions, and permission scope limits, and restrict callable tools to only the necessary scope.\n\n- In particular, it is safer to use MCP servers connected to high-impact tools—such as file access, code execution, sending email, or running workflows—only from an internal network or a trusted network.\n\n## Related Documents\n\n- [Account Settings](../../20.workspace/10.account/30.account-settings.md)\n",1789664750926]