2025-11-13 | GOSIM开源创新汇 | 开源MCP通用访问网关:解决Agent工具孤岛困境
MCP Director开源网关实现一个URL访问所有私有工具 突破Agent工具孤岛实现企业级部署
标签
媒体详情
- 上传日期
- 2025-11-16 17:17
- 来源
- https://www.bilibili.com/video/BV13oCsBYEZw/?spm_id_from=333.1391.0.0
- 处理状态
- 已完成
- 转录状态
- 已完成
- Latest LLM Model
- anthropic/claude-sonnet-4.5
转录
Language: Chinese [SRT] 1 00:00:00,000 --> 00:01:48,258 我是尚志斌。呃,我来自于一个香港的开源创业团队。那我个人呢,呃,写了有二十八年的代码。那其中有二十年呢,是在做网络通讯技术的开发。那现在呢,致力于 AI 网络的研究和开发。那在做 AI 的开发过程当中呢,啊,我们发现了一些问题,那我们也找到了解决方案去解决这些问题。今天很荣幸能够在 GOSIM 的平台和大家来分享我们的研发成果。那我今天的主题是,呃,AI Agent 的工具孤岛困境以及解决方案。那我会围绕啊下面这六个呃部分来跟大家进行分享。那呃智能体的发展呢现在是如火如荼,那我们在其实在这两天的整个会议当中,也能够体会到智能体呢现在是百花齐放,啊,各有千秋。那智能体的能力呢,其实也是日新月异,呃,这个大家其实都是有这个深刻体会的。那我们希望智能体能够做的更多,啊,能够成为我们,呃,日常生活中的这个呃伙伴和助手。那我们实际上会希望智能体可能成为我们的企业专家,那我们也希望智能体能够成为我们的智能管家,那我们甚至希望智能体能为成为我们的个人助手。啊,那这些呢,都需要我们提供给智能体访问到更多的工具。啊,那就此我们相信智能体的万物皆工具的这个时代呢。 2 00:01:48,258 --> 00:03:52,034 很快就会来临。每一个应用,每一个设备,都有可能成为智能体的工具。啊,我们可以想象一个场景,那在之后呢,很可能你的手机里边的,呃,大部分的应用你都不会去把它点开去使用了,而是在智能体完成你的任务的时候,由智能体去调用这些应用来作为它的工具。啊,那比如说你可以让智能体去检查你的邮件,然后根据你的邮件内容呢,去完成一系列的任务。其实我现在自己就已经这么去做了。啊,你的邮件里面可能需要啊去做一个销售的呃报价,然后把它转给呃发给你的客户。啊,你也可能需要去完成一些这个公司的任务,然后把结果去汇报给你的老板。那这些呢实际上都是智能体,呃,现在就能够完成的这个工作。啊,但是呢我们现在发现很多的工具其实并不在我们能够访问到的地方,它在你的这个私有的环境里面,在你的企业当中,在你的家里边,在你的 PC 上,在你的手机上。那这些独立的网络环境呢,就形成了我们所谓的工具孤岛,那也造成了我们 AI 工具的工具孤岛效应。那 MCP 大家都已经非常的了解了,那 MCP 呢,给呃为这个智能体,有效的去使用工具,提供了一个方案。但是我们怎么去突破工具孤岛,那这个还是有不少的挑战的。那其中有一些比较重要的,我们就是一定要解决,我们才能称之为突破了工具孤岛。那第一就是你如何去部署你的工具。 3 00:03:52,034 --> 00:06:00,258 你把工具部署在云端,啊这个看上去好像是最容易能够突破的,但是你会面临到一个成本的问题。你部署的工具越多,你的 server 越多,那你的成本一定是越高。那这个对于啊小型的普通的这个小型的一些企业或者一些普通消费者来讲呢,这个并不是一个可行的办法。同时你还要解决另外一个问题,就是你从云端怎么去访问到你的私有数据的问题。啊,那你可以把你的这些工具呢部署到你的私有环境里面,比如说你可以部署到你的企业当中,部署在你的家里,你甚至可以部署到你的手机上。那这样你还是要遇到一个问题,就是你怎么去解决从互联网去访问到你的私有环境,你的私有工具的这个问题。啊,那我们现在一个人去使用几个 mcp server,我相信大家有很多人都已经开始在使用了。那在你的这个 cursor 里面,在你的 vs code 里面,你可能都已经在用了。那你去配置几个 mcp server 呢,啊管理起来不复杂。但是如果我们在企业环境,或者说我们在一个有很多成员的家庭环境里面使用的时候呢,你有几十个 server,甚至几百个。那你有几十个用户,几百个用户去用这些 server 的时候,那这个管理其实就不是那么简单了。我们要给每一个用户去分配他可以访问到哪些这些 server,那我们就必须要去解决管理的问题。啊,那我们如果想把工具投放到我们的生产环境,那对于企业来讲,生产环境就是它的这个命脉。我们要把工具投入到生产环境当中的时候呢,那安全肯定是第一位的。啊任何不安全的东西其实都无法在企业中真正的使用到。那要解决这个安全的问题,那我们就必须要考虑怎么能够去让你的访问安全,让你的工具能够得到安,得到这个授权才能够使用。那这些都是我们必须要去解决的问题。 4 00:06:00,258 --> 00:07:47,874 那我向大家介绍我们的开源 MCP 通用访问网关。啊,那它可以帮助用户轻松的去解决我们上述的问题,突破啊我们的这个工具孤岛。那呃大家看到我们有一个叫做 MCP Director 的一个产品,那它是我们开源通用访问网关的开源项目。那我们在 GitHub 上面已经有这个开源,大家可以在上面找到我们的项目。那呃 MCP Director 呢,它解决了我们的工具孤岛的问题,只需要一个 URL。那只需要一个 URL,我们可以呃回想一下我们在现在的配置当中你需要多少 URL。我们只需要一个 URL 和一个授权的这个密钥,就可以让你的 agent 或者是你的 MCP client 端,从互联网,从你的企业内部,从你的家庭局域网,从你的手机上面,去访问到你所有的工具。那这些工具呢,你可以把它部署在任何地方,啊,云端也可以,企业内也可以,你的家里,你的手机,甚至你的车上都可以。那首先呢,我们实现的是任意部署,随处访问。你可以去把它部署在任何你觉得合适的地方。就刚才说我们现在实际上还是把这个 MCP server 呢作为一种高级的企业工具来使用,一定要有一个你认为这个够好的环境,但实际上作为 AI 的工具,它应该是无处不在的。所以你应该把它部署在你真正需要的地方。 5 00:07:47,874 --> 00:10:14,882 你的这个家里面的啊智能设备上面,或者是你自己的汽车上面,那或者是办公室的这个打印机上面也都可以。啊,当然你访问的时候呢一定要具备可以随处访问的这个要素,那你不能让使用这个AI遇到障碍,说我在某一个地方我是访问不到这些工具的。啊,那这个就是我们的通用访问网关能够给用户提供到的一个便利,任意的部署,随处的访问。同样呢我们的呃MCP Director也提供了统一管理和定制这个需按需定制的这个这个呃功能。它可以帮你管理你所有的MCP server和所有的工具。呃根据这个用户的需求,根据用户需求的不同,我们甚至于可以把不同的server里的工具重新的整理组合,变成一个新的MCP server。啊根据你的这个这个呃业务需求,我们可以变成一个新的MCP server,但是你的原有的server和原有的client呢不需要做任何改造,甚至于你连你的这个URL都不需要有任何变化。啊,这个就是一个非常灵活的,我们按需来做定制。那我们的MCP Director也具备统一认证和精细授权的这个呃能力。我们可以为不同的用户,不同的使用场景来创建不同的密钥。不同的密钥呢又可以去呃授权访问不同的这个MCP server。那每一个MCP server里的工具呢,我们又可以单独给他授权。啊所以我们的整个授权是非常的精细化,非常的适合啊在一个呃团体的这个这个这个环境里面来使用。那我们能够做到这些要依赖于我们自己的这个核心组件,也是啊我们的一些核心技术。那首先我们的这个网关,我们的MCP Director的网关,啊它是一个呃和我们标准的MCP client进行无缝连接的部件。那也就是说只要你的这个client端是符合MCP协议的,那它就可以跟它无障碍的连接。也就是说用这样的网关,我们就可以让用户访问到你后期后边所有的这个MCP server。 6 00:10:14,882 --> 00:11:57,154 啊,那我们的路由器呢,是呃我们来完成这个Agent和工具之间进行通信的一个呃部件。那它不仅能够完成Agent和工具之间的这个直连,那这个Agent和工具是完全分散在不同的网络环境里面的,并不是说大家在一个LAN或者一个Internet里边,而是说它分散在不同的网络环境里面,可能在家里面,可能是在你的办公室里面。那我们可以让它实现真正的这个直连,透传的这个功能。那不仅如此,我们实际上还是可以做到Agent和Agent,那就就是我们所谓现在A to A的一个一个模型。啊,那我们也可以实现工具和工具之间的相互调用。啊,那这个就是我们的这个呃路由器在当中起到的一个重要的一个角一个角色。那我们的增值服务部分呢,除了去帮助用户管理你的MCP server,管理你的这个工具,啊去授权你的工具的使用。那我们还呃在未来很快会去呃这个发布一个新的一个这个功能,就是我们会提供工具市场和工具计费平台两个这个这个这个部件会增加进来。那工具市场呢,可以帮助我们的开发者,工具开发者,啊快速的面向你的最终用户。那最终用户也可以非常方便的去直接从工具市场上面install你的这些工具。那这个就相当于我们手机的App Store一样的,你只要点击。 7 00:11:57,154 --> 00:13:55,330 get,那你就能够使用,那这是一个非常用户友好的一个一个一个方式,那我们也会去支持。那另外一个呢,就是我们的这个工具计费的一个平台,那这个呢是对于工具的开发者来讲,我们呃帮助他来做订阅计费,就是你可以把你的工具,当然你可以免费给大家使用了,那如果你希望把你的工具变成呃一些收益的话,那我们可以给你提供订阅的功能,那用户可以订阅来使用你的工具。啊,那这样的话我们帮助这些工具开发者,啊快呃把自己的智力就变成了这个实实在在的收益。啊,那我们的 Studio 呢,啊实际上是在工具端的一个呃集中器,那这因为我们现在要打破最后这个一公里,所以我们就做了一个 Studio,但是实际上大家看到我们后面还有一个 SDK,啊那使用 SDK 工具开发者完全可以自己自己开发,呃不需要用到我们的这个 Studio,啊那我们的 Studio 呢是在呃工具端的一个集中器,那它的呃这个呃用途呢,就是集中 MCP Server,你的本地的 MCP Server,然后把你的工具信息呢发布到我们的 Director 里边,然呃之后呢再去把你从 Client 端呃过来的工具调用的请求,去把它透传到 MCP Server 里边,最后把结果再返回到 Client 端,啊这个是一整套的这个体系,当中不需要有任何呃开发的介入或者是这个使用上的介入。啊那对于工这个呃用户来讲,呃就相当于我们在家里边的呃智能家居的盒子,你连上了你的这个呃智能家居的设备,那你在手机端就可以使用,啊也是一个非常非常方便的一个一个方式。 8 00:13:55,330 --> 00:16:04,226 那我们实现了啊所有这些,但是在当中呢,我们实际上呃有了很多的一些技术的创新。那在这个里边呢,我拿出来了六个来跟大家来分享。那第一个呢就是我们的 URL 复用的这个技术。呃呃这个技术是什么意思呢?我们现在想象就是我们在做这个 MCP server 的设置的时候,那你有一个 server 你就要写一个设置。你离开了这个 client 端,在另外一个 client 端上面重新部署的时候呢,你发现又要做重新设置,你有十个就要就要部署十个,有一百个就要部署一百个。那我们的 URL 复用呢,是你用一个 URL 去覆盖到你所有的 MCP server。你有一百个,我的一个 URL 也可以访问到你的一百个。我有一千个,我也能访问到一千个。啊这个就是我们的 URL 复用的这个特点。啊它把啊复杂的这个配置简化到只有一个,那这个应该来说是简化到极致了。啊啊那同样我们在做 MCP server 的时候,设置的时候呢,你仍然会遇到这个 key 的问题。不同的 server 有不同的 key。啊那有多少这个 key 你就要这个设置多少次,对吗?那即便我们能够去实现这个 Oauth 2 的这个呃这个验证,统一的去去做这个身份验证,但是它仍然没有办法去实现进行工具访问授权的这个能力。那那实际上我们真的做这个 Oauth 2 的话也不是这么容易,你不可能要求所有的这些 server 都具备 Oauth 2 的这个功能,有一些它可能就是没有。但是我们的这个呃 MCP director 呢,啊用一个 key,刚才说我们用了一个 URL,你可以用一个 key,然后针对这个 key 来做不同的 server 的授权,针对不同 server 里面的不同工具的授权。啊这个对于用户来说也是一个 key 就解决了你所有的问题。那从管理方面上面来说,从使用上面来说,都是一个非常呃简单极致的方案。 9 00:16:04,226 --> 00:17:52,034 那我们的呃虚拟 MCP server 呢,呃应该来说是一个呃挺有趣的一个创新,因为这个呢是我们近期两个礼拜之前啊突然把它加上去的。因为来自于一个客户的呃需求,啊他告诉我呢是呃他们会用两个 MCP server,一个是高德的,一个是滴滴的。但是这两个 server 里边呢都有一个叫做 search text 的一个工具,而且描述呢都非常相似。所以在 agent 用这个两个 server 的时候,他把这两个 server 的工具都给到 AIM 去分析的时候呢,他会发现有的时候可能给的是高德的结果,有的时候给的是滴滴的结果。他期望的这个结果呢并不能如愿以偿。那这个时候你就完全没有办法去控制给到的结果,那对你的这个这个 agent 来说就变得不可靠了。啊,那我们的 MCP 这个呃虚拟 MCP server 呢,可以迅速的解决这个问题。我们可以根据你的用户场景,在你的这个本地的不同的这个呃 MCP server 当中,去重新的组织,重新的去这个呃呃变成一个新的 MCP server。那就是在我们现在的案例里面呢,如果你希望用到的是高德的这个 search text,那你就把高德的 search text 放到我们的虚拟 MCP,然后把其他你需要的这些呃工具呢也放到同一个 MCP。那这个时候用户不需要去用两个 MCP server,你用的只是一个,那我们就解决了你的工具冲突的问题。那这个呃使用的场景实际上在企业当中可能会经常出现。 10 00:17:52,034 --> 00:19:54,722 我们的工具呃,除非我们把它真正做到原子化,一个工具一个 server,当然这个我觉得不大可能。那如果我们一定会有一个工具集的这个这个情况的话,那你做 MCP server 对于你的这个使用场景的适应,那就是非常重要的。啊,那呃刚才我们说到我们的这个路由的啊啊这个这个核心部件,那实际上在我们的路由器当中呢,我们使用了我们自己的 MCP 内网穿透的啊一个一个技术。那它不同于我们传统的这个 P to P 打洞的技术,也不同于我们在单台这个服务器上面去做端口转发的这个技术。那这个呢是我们自己呃自研的一个叫做 TCP 隧道的一个技术。啊,那也就是呃呃我们 TCP 隧道的技术呢,有这个多路复用和多目的地的这个特点。那也就是说你只需要一个 TCP 的连接,我就可以访问到不同的目标,而且是同时访问到不同的目标。啊,这个是呃比较有特色的一个。另外一个呢。啊,我们的这个呃 TCP 隧道技术呢,还具备路由的功能。啊,呃不是完全的我们讲这个这个点到点的直连,就是通过 TCP 点到点直连,它是可以路由的这个功能。那不同地区的 client,比如说我有一个 client,它可能是在啊上海,那我另外的 server 呢,可能是放在美国某个地方。那它们分属于不同的区域,那在不同区域里边的 client 跟 server,通过我们的呃隧道路由协这个隧道路由的技呃技术,就可以建立起直接的连接,进行这个相互的访问,双向的这个通信。 11 00:19:54,722 --> 00:22:03,234 啊,这个就是我们独特的呃隧道技术。那这个技术对于我们来说,啊,一个是我们可以做全球范围的大规模部署。啊,呃,像传统的,像如果是这个呃端口转发,甚至 P to P 的话,你很难做到一个呃商用级别的这样的一个体系。啊,呃,都是不太可靠。那但是我们可以做到全球范围内的这个部署,大规模部署。啊,同时我们也可以就近的为用户提提供这个更优质的服务。啊,第六个呢,大家看到我把这个放到最后一位了,因为这个是我们正在研发的一个功能。那这个功能的独特之处呢是,呃,如果两个用户用同一个工具,我们可以根据用户的属性,来设置你的工具参数和工具访问内容的控制。啊,就比如说,如果我有一呃企业可能有上海和这个呃杭州两两个分部,那我们的企业员工在这个他的 agent 在使用工具的时候呢,可能都会用到一个叫做销售数据查询的一个功能。但是根据你自己的权限,那上海的员工可能只能查询到上海的数据,啊,杭州的员工只能查询到杭州的数据。那在做这个权限管理的时候,你就会发发现问题,我要为这些很细致的功能去做更多的工具。那有个工具是专门给杭州的用户用的,有个工具是专给上海的这个这个呃 sales 用的。那这个实际上对于开发来讲,呃,是一个我认为是一个这个很不,呃,很没有效率的一个一个方案。但是我们的这个新的这个呃工具入参的访问控制呢,就可以通过 AI 的角度,去限制不同的用户他能够使用参数的范围。 12 00:22:03,234 --> 00:23:32,258 那你的返回结果里面如果有不属于你可以访问的这个内容范围的话,我们也可以将它啊剔除出去。那这个就是我们正在研发的一个功能,那这个呢实际上就更好的去适应了企业的呃一些这个这个呃安全数据上面的一些一些 policy 吧。啊,因为对于 AI 来讲,企业之前用到的所有工具呢,它的可控力度很强。但是 AI 去把所有你之前人为去做的一些调度呢,全部都由 AI 来完成了。那当中你就很难去人为干涉,去做出一些细致的这个调整。所以在这个方面呢,我们做的这个新的这个研发,实际上对 AI 进入到企业的使用,实际使用是有一些作用的。呃,那我们现在看一下我们的这个通用访问网关的一个实现的原理。那整个部分呢啊分成了四个四个阶段。那首先呢是发布,啊,再次呢就是要对啊所有东西做管理,然后是等待啊我们的 client 端进行访问,最后就是建立连接,然后形成一个通道进行啊这个数据的通信。 13 00:23:32,258 --> 00:25:53,538 那在发布的阶段呢,啊我们首先要去做数据采集,那就是我们要去从 MCP server 上面采集到你所有的工具的信息,啊,然后把这些工具呢做一个叫做工具 ID 的标识。那这个 ID 的标识之后,那我们就可以把这些工具发布到我们的 MCP director 了。那这个步骤完成之后呢,我们就需要去对这我们的工具,我们的 server 去做管理。那首先呢,啊我们要为用户去创建密钥,你的用户或者是你的使用场景,去创建密钥,然后将发布来的这些工具和你的这个密钥来做一个授权的关系,哪些密钥可以访问到哪些工具,去做做一个授权的关系。啊,当然这个密钥它呃具备身份验证和工具授权两个特点,跟我们传统的这个啊这个 API key 是有一个重大的不一样的地方。呃,管理的工作做完之后,那我们就需要等待客户端去访问我们的工具了。那在访问的过程当中呢,它首先需要认证你的身份,那我们的密钥的第一个功能就在这里起到作用。啊,那一旦你的身份得到确认之后,那我们就需要通过你的你的密钥来获取你可以访问的工具列表。啊,这个就实现了我们密钥的第二个功能。那这个呃工具获取到之后,接下去就是 AI 的工作了。那最后呢就是 AI 来决定你调用哪一个工具。那这个时候我们的访问就进入到了下一个下一个阶段。那我们的这个 gateway 一旦收到你的工具调用请求,首先它会根据你的工具的这个标识,去寻找哪一个工具在哪里,啊就是我们这个所谓的寻址的这个阶段。那寻址的阶段完成,我们找到了工具之后呢,就要在工具和这个呃 agent 之间去建立一个隧道连接。啊,那这个隧道连接一旦完成。 14 00:25:53,538 --> 00:28:00,994 接下去就是真正的工具调用的过程。那我们在啊,agent和在这个真正的 MCP server 之间的这个隧道呢,就可以完成通信的这个完全透传,透传的这个过程。那你的所有的这个呃 client 端发出的信息是原封不动,透明的送入到 MCP server 当中。那 MCP server 回答的这些内容呢,也是通过透传的方式回到这个 client 端。呃,我们做到这些实际上当中也会去啊碰到一些技术的难点。啊,那第一个这个难点呢,就是我们必须要给每一个工具去分配一个呃唯一的这个标识。啊,那这个标识呢,它不是我们普通的这种传统的这种 UUID,因为它首先要具备一个工具在哪一个 server 里的标识功能。就是说我的这个工具,它的原生是在哪一个 server,它必须要有这样的一个标识功能。那第二个的这个标识功能呢,它必须要知道我的 server 是在哪一个网络位置,是在我办公室里的,还是在我家里的,或者在我手机上的。所以呢,这个实际上在真正的这个实现当中,它是一个啊很显著的一个一个一个难点。啊,那一旦有了这个工具标识之后,那我们就要去解决下一个问题。我们通过这个工具标识,我们怎么能够发现这个工具?两,它在两个不同的环境里面,我们怎么能够去发现这个工具?我们怎么能够让两工具和 agent 之间能够建立起一个连接?然后在这个连接当中进行双向的这个数据通信。啊,这个就是第二个难点。那第三个难点呢,是一旦工具开始发起访问,啊,agent 一旦开始向工具发起访问的时候,那我们怎么根据啊工具的授权来控制你的访问? 15 00:28:00,994 --> 00:30:00,002 啊,包包括刚才说你是不是有权利访问这个工具,那你是不是有权利访问用这个参数来访问这个工具,那这个也是一个需要解决的难点。那这三个难点呢,其实是整个实现当中啊最重要的三个难点。那具体的这个解决方案呢,大家可以从啊。啊呃可以从我们的这个 GitHub 的这个项目里边,项目的源码里面呢去找到答案。呃那我接下来呢就向大家演示一下我们 MCP Director 是如何使用的,那大家也可以体验一下我们的真正的这个对用户友好,对啊这个工具端友好的一个一个场景。那呃我们这个演示呢实际上啊是这样的一个场景,我们用一个第三方的啊这个,我们用一个第三方的这个 agent,那我实际上在演示当中用的是扣子,扣子的手机端,啊来让 agent 去调用我在我在私有空间的这个我的工具。那我的私有空间里面有两个工具,一个呢是在我的 Mac OS 上面的我的 reminder,啊我的这个提醒簿。另外一个呢是在我的 NAS 上面,我自己的 NAS 上面呢我装了一个 Obsidian,那它是一个我们可以认为它是一个知识库的一个管理的工具吧,它就是来帮你去管理 markdown 的一些文件,啊来组织 markdown 的一些文件。那这两个呢一个是在我的 Mac OS 上面,我的 Mac 的一个 Mac mini 的一个一个一个设备上,另外一个是在我的 NAS,它们是两个完全分开的。那首先呢我们要去下载我们的 MCP Studio,呃,呃这个这个下载的路径,这大家到我们的那个呃 GitHub 上面的这个这个项目里面可以找到,呃这个有点就是有有点断开了,下面还有后面这个 URL 后面还有一小段。 16 00:30:00,002 --> 00:32:06,242 大家可以到我们上面去搜索这个 MCP Director Studio 这个这个项目。啊,那我们的呃 MCP Director Studio 呢,啊,假如你不想去注册你的账号无所谓,你可以直接用匿名的方式。大家有的时候可能也就想试试看,并不想去马上变成一个用户,那你可以你你可以用匿名的方式,不需要做任何的注册,你去用匿名的方式来使用我们的 MCP Director。那那你那大家看到这个可能看不清楚,这边是一个匿名登录的一个一个一个用户。啊,那一旦登录进去之后呢,刚才说到我们第一个阶段是要做采集,所以呢,你去用传统的你原来已经很熟悉的配置这个 MCP Server 的方法,在我们的这个 Connect MCP 的这个呃功功能下边呢,去加入这个新的 MCP Server。那加入之后呢,加入之后呢,如果你觉得这个是你需要的工这个工具的话,你就去 publish 到啊有一个 button,这边上面有一个 button 啦。啊嗯嗯,因为 publish publish 过了,所以这个 button 就不见了。你可以把它 publish 到我们的这个呃 MCP Director 里面去。那一旦 publish 上去之后呢,你的这个 server 上面就会有一个呃紫色的这个标签,写着 MCP Director,那说明你的 MCP Server 呢,已经可以通过我们的 URL 能够发现能够能够使用了。那第二步就是我们要给访问者使用者去创建一个密钥。这个密钥呢你可以去根据你的需要来自己来来创建,创建多少都可以。啊,你如果有一百种可能性,你就创建一百种,这个这个根据你的需要来来确定。那在这里呢其实我创创建了两个密钥,一个是给呃千问用的,因为因为我现在基本上算是 code 跟千问的这个忠实用户,我通常就就是用这两个这个 agent。啊,那你创建完这个密钥之后呢,那接下去你就可以给这个密钥授权。 17 00:32:06,242 --> 00:34:08,066 给这个密钥授权。那大家看到呢,我实际上有两个 server,一个叫做 iMCP,这个是一个在 Mac 上面可以把你的 calendar,你的啊 contact,你的 reminder,你的啊 message,很多东西,把它转化成 MCP 的工具,就把你原来的这些应用,这些这个原生应用直接转化成 MCP 的工具。这个挺挺好用的一个一个呃 MCP tool。另外一个呢就是我们的这个 MCP 啊 OpsTeam,这个是呃也呃当然这个实际上是一个开源的啦,它是一个开源的工具,可以直接读取 OpsTeam 里边的一些内容,或者把一些这个啊你的文件放到 OpsTeam 里面。大家看到呢呃在啊一个大家看到是在 Linux 里边,一个呢是在 Mac OS 里面,它们是两个不同的环境里。啊,呃另外再跟大家说,我们的这个管理呢并不是说只能本地管理本地的,你在任何一个呃你的 studio 上面,啊比如说你在你在你的 Mac 里面有 studio,你在 Linux 里面 studio,可能你在你的办公室里也有 studio,你的任何一个 studio 呢都可以全局管理你所有的这些这些 server。那刚才我们所做的就是在我们 studio 里面的工作,我们已经完成了,我们不需要再做任何其他额外的工作了。刚才我们三步,下载,加 MCP server,给它授权,三步,我们已经完成所有的工作了。接下去呢就是该如何使用。那使用呢根据你的 agent 上面的啊这个添加 MCP 工具的这个方式,你把它加进去。大家看到我们这边有一个啊这个 URL,这个是我们一个已经公开的 URL,就是大家都可以用。你在啊呃这个刚才在做完那个那个呃 sorry,可能我又我又忘了这个说一点,呃在这里就是大家拿到了这个 key 之后呢,拿到这个 key 之后呢,实际上是可以去通过这个 key,拷呃拷贝刚才我们的 URL。 18 00:34:08,066 --> 00:35:40,066 啊,那个 URL 拷贝完之后,你直接放到你的这个啊 code 或者是或者是千问里面就可以了。那这个就是在 code 的手机端做的一个配置。配置,那我们所有的这个对于工具的访问就在这一个 URL 里边。后边呢是跟的是 key,我们对 key 呢有几种这个使用方式,也是体现出用户友好。啊,这种方案呢是最方便的一种方这个方式,就是对于用户来说,你不需要这个了解什么叫这个 auth two,啊,什么是这个呃这个 authorization 的这个 key,你都不需要去了解,你只要跟着后面就可以了。啊,当然这个也有人会说这个可能不是很安全,因为啊你可能会把这个 URL 放到你的浏览器里面去,然后就会就会泄露出去。当然这个呃也会存在存在这样的这个这个问题。所以我们其实同时支持你在 URL 里面去使用 key,或者是你直接在这个啊这个我们的 head 里面,HTTP head 里面去加入这个 key,两种方式都是支持的。啊,这个只是体现出啊对用户来说没有任何技术上面的要求或者理解。加入之后,我们就开始使用了。那我们算上在 agent 里边做配置,我们一共只需要四步。啊,我相信这个应该来说是呃最简单的一个呃做法,能够让你的 agent 去用到你真正的工具。这应该是最简单的一个做法了,不会不会有比比它更简单的了。 19 00:35:40,066 --> 00:37:57,538 那大家看到呢,左边是我的 calendar,左边是我的这个 reminder 里边的内容,这是实实际真正存在的,在我的这个 Mac mini 上面有的这个内容。那右边呢是呃两个截屏,因为因为因为太长,那个手机手机的屏幕太长,而且我不知道为什么它不允许我做这个长截屏,所以我就只能截两个屏啊。那我们看到呢在手机端这边呢我有一个这个呃呃任务是交给这个 codes,说你从我的呃 reminder 里面去查询我的这个提醒的这个这个信息。啊这个就是要求 codes 来帮我查询我在 reminder 里的信息。然后这个是 codes 思考的过程,它找到了对应的工具,它找到了对应的工具,啊然后它从对对应的这个工具开始调用了,它正在调用,啊调用了这个工具,然后去显示出来我的 reminder 里的信息,这个是完全一致的。那假如我让它再去后续做新的任务,比如说啊你根据我的这个 reminder,然后去帮我订杭州的票,或者是帮我去 booking 我的这个啊 zoom 的会议室,那只要后面有相对应的工具,那我就可以一次性完成所有的工作。那这边呢就是对我们的这个 opusting 里面去做的一个呃做的一个这个访问。那我这边呢是呃让它去呃这个查询我在 opusting 里面的一些文件列表,那它这边也也都这个呃呃查询出来,而且这个结果是对,那这个结果也是跟我的这个原生的这个内容是完全匹配的。那呃我们的 MCP director 呢,啊从这个 AI 的工具孤岛这个问题出发,然后去解决了我们真正 MCP,或者说我们这个 AI 工具作为可以投向啊消费者使用的最后一公里这个孤岛的这个问题。啊那用我们的这个解决方案呢,你可以这就是我们的一个 slogan,你用一个 UI 有一个 key 访问你所有的这些工具。 20 00:37:57,538 --> 00:39:07,721 啊,我可能就两呃两两分钟可以可以可以结束了。那我们的 MCP Director 并没有就在啊这个就此这个停止,那我们的下一个里程碑呢是做 A to A 的 Director,因为我们前面的技术刚才说到,我们实际上可以做 A 这个 Agent 到 Agent,我们也可以做 To To 的这个这个访问。另外一个呢这个啊最后一页最后一页,另外一个呢就是啊这个是我们的一个啊呃一个一个彩蛋了,这个是我们是在开发的过程当中用到的一个开发的这个调试工具。那我们呃通过这个连接,大家看到这个连接跟我们刚才的那个呃 MCP 的那个那个连接是完全一致的。你通过这个连接后面有个后缀是 To,你就可以用 API 的方式去调用到你的这个工具。就是说我们并不是呃只有 AI 的调用方式,你可以把我的这个 MCP Director 当做你的一个 API 的网关,然后去调用。那这个说明什么呢?就是你真的可以去做系统的集成。啊,这就是我们的一个这个呃呃工具,我现在把它分享给大家,你可以用它来做 MCP,你也可以用它来做 API 调用。这个非常感谢。 [Transcript] 我是尚志斌。呃,我来自于一个香港的开源创业团队。那我个人呢,呃,写了有二十八年的代码。那其中有二十年呢,是在做网络通讯技术的开发。那现在呢,致力于 AI 网络的研究和开发。那在做 AI 的开发过程当中呢,啊,我们发现了一些问题,那我们也找到了解决方案去解决这些问题。今天很荣幸能够在 GOSIM 的平台和大家来分享我们的研发成果。那我今天的主题是,呃,AI Agent 的工具孤岛困境以及解决方案。那我会围绕啊下面这六个呃部分来跟大家进行分享。那呃智能体的发展呢现在是如火如荼,那我们在其实在这两天的整个会议当中,也能够体会到智能体呢现在是百花齐放,啊,各有千秋。那智能体的能力呢,其实也是日新月异,呃,这个大家其实都是有这个深刻体会的。那我们希望智能体能够做的更多,啊,能够成为我们,呃,日常生活中的这个呃伙伴和助手。那我们实际上会希望智能体可能成为我们的企业专家,那我们也希望智能体能够成为我们的智能管家,那我们甚至希望智能体能为成为我们的个人助手。啊,那这些呢,都需要我们提供给智能体访问到更多的工具。啊,那就此我们相信智能体的万物皆工具的这个时代呢。 很快就会来临。每一个应用,每一个设备,都有可能成为智能体的工具。啊,我们可以想象一个场景,那在之后呢,很可能你的手机里边的,呃,大部分的应用你都不会去把它点开去使用了,而是在智能体完成你的任务的时候,由智能体去调用这些应用来作为它的工具。啊,那比如说你可以让智能体去检查你的邮件,然后根据你的邮件内容呢,去完成一系列的任务。其实我现在自己就已经这么去做了。啊,你的邮件里面可能需要啊去做一个销售的呃报价,然后把它转给呃发给你的客户。啊,你也可能需要去完成一些这个公司的任务,然后把结果去汇报给你的老板。那这些呢实际上都是智能体,呃,现在就能够完成的这个工作。啊,但是呢我们现在发现很多的工具其实并不在我们能够访问到的地方,它在你的这个私有的环境里面,在你的企业当中,在你的家里边,在你的 PC 上,在你的手机上。那这些独立的网络环境呢,就形成了我们所谓的工具孤岛,那也造成了我们 AI 工具的工具孤岛效应。那 MCP 大家都已经非常的了解了,那 MCP 呢,给呃为这个智能体,有效的去使用工具,提供了一个方案。但是我们怎么去突破工具孤岛,那这个还是有不少的挑战的。那其中有一些比较重要的,我们就是一定要解决,我们才能称之为突破了工具孤岛。那第一就是你如何去部署你的工具。 你把工具部署在云端,啊这个看上去好像是最容易能够突破的,但是你会面临到一个成本的问题。你部署的工具越多,你的 server 越多,那你的成本一定是越高。那这个对于啊小型的普通的这个小型的一些企业或者一些普通消费者来讲呢,这个并不是一个可行的办法。同时你还要解决另外一个问题,就是你从云端怎么去访问到你的私有数据的问题。啊,那你可以把你的这些工具呢部署到你的私有环境里面,比如说你可以部署到你的企业当中,部署在你的家里,你甚至可以部署到你的手机上。那这样你还是要遇到一个问题,就是你怎么去解决从互联网去访问到你的私有环境,你的私有工具的这个问题。啊,那我们现在一个人去使用几个 mcp server,我相信大家有很多人都已经开始在使用了。那在你的这个 cursor 里面,在你的 vs code 里面,你可能都已经在用了。那你去配置几个 mcp server 呢,啊管理起来不复杂。但是如果我们在企业环境,或者说我们在一个有很多成员的家庭环境里面使用的时候呢,你有几十个 server,甚至几百个。那你有几十个用户,几百个用户去用这些 server 的时候,那这个管理其实就不是那么简单了。我们要给每一个用户去分配他可以访问到哪些这些 server,那我们就必须要去解决管理的问题。啊,那我们如果想把工具投放到我们的生产环境,那对于企业来讲,生产环境就是它的这个命脉。我们要把工具投入到生产环境当中的时候呢,那安全肯定是第一位的。啊任何不安全的东西其实都无法在企业中真正的使用到。那要解决这个安全的问题,那我们就必须要考虑怎么能够去让你的访问安全,让你的工具能够得到安,得到这个授权才能够使用。那这些都是我们必须要去解决的问题。 那我向大家介绍我们的开源 MCP 通用访问网关。啊,那它可以帮助用户轻松的去解决我们上述的问题,突破啊我们的这个工具孤岛。那呃大家看到我们有一个叫做 MCP Director 的一个产品,那它是我们开源通用访问网关的开源项目。那我们在 GitHub 上面已经有这个开源,大家可以在上面找到我们的项目。那呃 MCP Director 呢,它解决了我们的工具孤岛的问题,只需要一个 URL。那只需要一个 URL,我们可以呃回想一下我们在现在的配置当中你需要多少 URL。我们只需要一个 URL 和一个授权的这个密钥,就可以让你的 agent 或者是你的 MCP client 端,从互联网,从你的企业内部,从你的家庭局域网,从你的手机上面,去访问到你所有的工具。那这些工具呢,你可以把它部署在任何地方,啊,云端也可以,企业内也可以,你的家里,你的手机,甚至你的车上都可以。那首先呢,我们实现的是任意部署,随处访问。你可以去把它部署在任何你觉得合适的地方。就刚才说我们现在实际上还是把这个 MCP server 呢作为一种高级的企业工具来使用,一定要有一个你认为这个够好的环境,但实际上作为 AI 的工具,它应该是无处不在的。所以你应该把它部署在你真正需要的地方。 你的这个家里面的啊智能设备上面,或者是你自己的汽车上面,那或者是办公室的这个打印机上面也都可以。啊,当然你访问的时候呢一定要具备可以随处访问的这个要素,那你不能让使用这个AI遇到障碍,说我在某一个地方我是访问不到这些工具的。啊,那这个就是我们的通用访问网关能够给用户提供到的一个便利,任意的部署,随处的访问。同样呢我们的呃MCP Director也提供了统一管理和定制这个需按需定制的这个这个呃功能。它可以帮你管理你所有的MCP server和所有的工具。呃根据这个用户的需求,根据用户需求的不同,我们甚至于可以把不同的server里的工具重新的整理组合,变成一个新的MCP server。啊根据你的这个这个呃业务需求,我们可以变成一个新的MCP server,但是你的原有的server和原有的client呢不需要做任何改造,甚至于你连你的这个URL都不需要有任何变化。啊,这个就是一个非常灵活的,我们按需来做定制。那我们的MCP Director也具备统一认证和精细授权的这个呃能力。我们可以为不同的用户,不同的使用场景来创建不同的密钥。不同的密钥呢又可以去呃授权访问不同的这个MCP server。那每一个MCP server里的工具呢,我们又可以单独给他授权。啊所以我们的整个授权是非常的精细化,非常的适合啊在一个呃团体的这个这个这个环境里面来使用。那我们能够做到这些要依赖于我们自己的这个核心组件,也是啊我们的一些核心技术。那首先我们的这个网关,我们的MCP Director的网关,啊它是一个呃和我们标准的MCP client进行无缝连接的部件。那也就是说只要你的这个client端是符合MCP协议的,那它就可以跟它无障碍的连接。也就是说用这样的网关,我们就可以让用户访问到你后期后边所有的这个MCP server。 啊,那我们的路由器呢,是呃我们来完成这个Agent和工具之间进行通信的一个呃部件。那它不仅能够完成Agent和工具之间的这个直连,那这个Agent和工具是完全分散在不同的网络环境里面的,并不是说大家在一个LAN或者一个Internet里边,而是说它分散在不同的网络环境里面,可能在家里面,可能是在你的办公室里面。那我们可以让它实现真正的这个直连,透传的这个功能。那不仅如此,我们实际上还是可以做到Agent和Agent,那就就是我们所谓现在A to A的一个一个模型。啊,那我们也可以实现工具和工具之间的相互调用。啊,那这个就是我们的这个呃路由器在当中起到的一个重要的一个角一个角色。那我们的增值服务部分呢,除了去帮助用户管理你的MCP server,管理你的这个工具,啊去授权你的工具的使用。那我们还呃在未来很快会去呃这个发布一个新的一个这个功能,就是我们会提供工具市场和工具计费平台两个这个这个这个部件会增加进来。那工具市场呢,可以帮助我们的开发者,工具开发者,啊快速的面向你的最终用户。那最终用户也可以非常方便的去直接从工具市场上面install你的这些工具。那这个就相当于我们手机的App Store一样的,你只要点击。 get,那你就能够使用,那这是一个非常用户友好的一个一个一个方式,那我们也会去支持。那另外一个呢,就是我们的这个工具计费的一个平台,那这个呢是对于工具的开发者来讲,我们呃帮助他来做订阅计费,就是你可以把你的工具,当然你可以免费给大家使用了,那如果你希望把你的工具变成呃一些收益的话,那我们可以给你提供订阅的功能,那用户可以订阅来使用你的工具。啊,那这样的话我们帮助这些工具开发者,啊快呃把自己的智力就变成了这个实实在在的收益。啊,那我们的 Studio 呢,啊实际上是在工具端的一个呃集中器,那这因为我们现在要打破最后这个一公里,所以我们就做了一个 Studio,但是实际上大家看到我们后面还有一个 SDK,啊那使用 SDK 工具开发者完全可以自己自己开发,呃不需要用到我们的这个 Studio,啊那我们的 Studio 呢是在呃工具端的一个集中器,那它的呃这个呃用途呢,就是集中 MCP Server,你的本地的 MCP Server,然后把你的工具信息呢发布到我们的 Director 里边,然呃之后呢再去把你从 Client 端呃过来的工具调用的请求,去把它透传到 MCP Server 里边,最后把结果再返回到 Client 端,啊这个是一整套的这个体系,当中不需要有任何呃开发的介入或者是这个使用上的介入。啊那对于工这个呃用户来讲,呃就相当于我们在家里边的呃智能家居的盒子,你连上了你的这个呃智能家居的设备,那你在手机端就可以使用,啊也是一个非常非常方便的一个一个方式。 那我们实现了啊所有这些,但是在当中呢,我们实际上呃有了很多的一些技术的创新。那在这个里边呢,我拿出来了六个来跟大家来分享。那第一个呢就是我们的 URL 复用的这个技术。呃呃这个技术是什么意思呢?我们现在想象就是我们在做这个 MCP server 的设置的时候,那你有一个 server 你就要写一个设置。你离开了这个 client 端,在另外一个 client 端上面重新部署的时候呢,你发现又要做重新设置,你有十个就要就要部署十个,有一百个就要部署一百个。那我们的 URL 复用呢,是你用一个 URL 去覆盖到你所有的 MCP server。你有一百个,我的一个 URL 也可以访问到你的一百个。我有一千个,我也能访问到一千个。啊这个就是我们的 URL 复用的这个特点。啊它把啊复杂的这个配置简化到只有一个,那这个应该来说是简化到极致了。啊啊那同样我们在做 MCP server 的时候,设置的时候呢,你仍然会遇到这个 key 的问题。不同的 server 有不同的 key。啊那有多少这个 key 你就要这个设置多少次,对吗?那即便我们能够去实现这个 Oauth 2 的这个呃这个验证,统一的去去做这个身份验证,但是它仍然没有办法去实现进行工具访问授权的这个能力。那那实际上我们真的做这个 Oauth 2 的话也不是这么容易,你不可能要求所有的这些 server 都具备 Oauth 2 的这个功能,有一些它可能就是没有。但是我们的这个呃 MCP director 呢,啊用一个 key,刚才说我们用了一个 URL,你可以用一个 key,然后针对这个 key 来做不同的 server 的授权,针对不同 server 里面的不同工具的授权。啊这个对于用户来说也是一个 key 就解决了你所有的问题。那从管理方面上面来说,从使用上面来说,都是一个非常呃简单极致的方案。 那我们的呃虚拟 MCP server 呢,呃应该来说是一个呃挺有趣的一个创新,因为这个呢是我们近期两个礼拜之前啊突然把它加上去的。因为来自于一个客户的呃需求,啊他告诉我呢是呃他们会用两个 MCP server,一个是高德的,一个是滴滴的。但是这两个 server 里边呢都有一个叫做 search text 的一个工具,而且描述呢都非常相似。所以在 agent 用这个两个 server 的时候,他把这两个 server 的工具都给到 AIM 去分析的时候呢,他会发现有的时候可能给的是高德的结果,有的时候给的是滴滴的结果。他期望的这个结果呢并不能如愿以偿。那这个时候你就完全没有办法去控制给到的结果,那对你的这个这个 agent 来说就变得不可靠了。啊,那我们的 MCP 这个呃虚拟 MCP server 呢,可以迅速的解决这个问题。我们可以根据你的用户场景,在你的这个本地的不同的这个呃 MCP server 当中,去重新的组织,重新的去这个呃呃变成一个新的 MCP server。那就是在我们现在的案例里面呢,如果你希望用到的是高德的这个 search text,那你就把高德的 search text 放到我们的虚拟 MCP,然后把其他你需要的这些呃工具呢也放到同一个 MCP。那这个时候用户不需要去用两个 MCP server,你用的只是一个,那我们就解决了你的工具冲突的问题。那这个呃使用的场景实际上在企业当中可能会经常出现。 我们的工具呃,除非我们把它真正做到原子化,一个工具一个 server,当然这个我觉得不大可能。那如果我们一定会有一个工具集的这个这个情况的话,那你做 MCP server 对于你的这个使用场景的适应,那就是非常重要的。啊,那呃刚才我们说到我们的这个路由的啊啊这个这个核心部件,那实际上在我们的路由器当中呢,我们使用了我们自己的 MCP 内网穿透的啊一个一个技术。那它不同于我们传统的这个 P to P 打洞的技术,也不同于我们在单台这个服务器上面去做端口转发的这个技术。那这个呢是我们自己呃自研的一个叫做 TCP 隧道的一个技术。啊,那也就是呃呃我们 TCP 隧道的技术呢,有这个多路复用和多目的地的这个特点。那也就是说你只需要一个 TCP 的连接,我就可以访问到不同的目标,而且是同时访问到不同的目标。啊,这个是呃比较有特色的一个。另外一个呢。啊,我们的这个呃 TCP 隧道技术呢,还具备路由的功能。啊,呃不是完全的我们讲这个这个点到点的直连,就是通过 TCP 点到点直连,它是可以路由的这个功能。那不同地区的 client,比如说我有一个 client,它可能是在啊上海,那我另外的 server 呢,可能是放在美国某个地方。那它们分属于不同的区域,那在不同区域里边的 client 跟 server,通过我们的呃隧道路由协这个隧道路由的技呃技术,就可以建立起直接的连接,进行这个相互的访问,双向的这个通信。 啊,这个就是我们独特的呃隧道技术。那这个技术对于我们来说,啊,一个是我们可以做全球范围的大规模部署。啊,呃,像传统的,像如果是这个呃端口转发,甚至 P to P 的话,你很难做到一个呃商用级别的这样的一个体系。啊,呃,都是不太可靠。那但是我们可以做到全球范围内的这个部署,大规模部署。啊,同时我们也可以就近的为用户提提供这个更优质的服务。啊,第六个呢,大家看到我把这个放到最后一位了,因为这个是我们正在研发的一个功能。那这个功能的独特之处呢是,呃,如果两个用户用同一个工具,我们可以根据用户的属性,来设置你的工具参数和工具访问内容的控制。啊,就比如说,如果我有一呃企业可能有上海和这个呃杭州两两个分部,那我们的企业员工在这个他的 agent 在使用工具的时候呢,可能都会用到一个叫做销售数据查询的一个功能。但是根据你自己的权限,那上海的员工可能只能查询到上海的数据,啊,杭州的员工只能查询到杭州的数据。那在做这个权限管理的时候,你就会发发现问题,我要为这些很细致的功能去做更多的工具。那有个工具是专门给杭州的用户用的,有个工具是专给上海的这个这个呃 sales 用的。那这个实际上对于开发来讲,呃,是一个我认为是一个这个很不,呃,很没有效率的一个一个方案。但是我们的这个新的这个呃工具入参的访问控制呢,就可以通过 AI 的角度,去限制不同的用户他能够使用参数的范围。 那你的返回结果里面如果有不属于你可以访问的这个内容范围的话,我们也可以将它啊剔除出去。那这个就是我们正在研发的一个功能,那这个呢实际上就更好的去适应了企业的呃一些这个这个呃安全数据上面的一些一些 policy 吧。啊,因为对于 AI 来讲,企业之前用到的所有工具呢,它的可控力度很强。但是 AI 去把所有你之前人为去做的一些调度呢,全部都由 AI 来完成了。那当中你就很难去人为干涉,去做出一些细致的这个调整。所以在这个方面呢,我们做的这个新的这个研发,实际上对 AI 进入到企业的使用,实际使用是有一些作用的。呃,那我们现在看一下我们的这个通用访问网关的一个实现的原理。那整个部分呢啊分成了四个四个阶段。那首先呢是发布,啊,再次呢就是要对啊所有东西做管理,然后是等待啊我们的 client 端进行访问,最后就是建立连接,然后形成一个通道进行啊这个数据的通信。 那在发布的阶段呢,啊我们首先要去做数据采集,那就是我们要去从 MCP server 上面采集到你所有的工具的信息,啊,然后把这些工具呢做一个叫做工具 ID 的标识。那这个 ID 的标识之后,那我们就可以把这些工具发布到我们的 MCP director 了。那这个步骤完成之后呢,我们就需要去对这我们的工具,我们的 server 去做管理。那首先呢,啊我们要为用户去创建密钥,你的用户或者是你的使用场景,去创建密钥,然后将发布来的这些工具和你的这个密钥来做一个授权的关系,哪些密钥可以访问到哪些工具,去做做一个授权的关系。啊,当然这个密钥它呃具备身份验证和工具授权两个特点,跟我们传统的这个啊这个 API key 是有一个重大的不一样的地方。呃,管理的工作做完之后,那我们就需要等待客户端去访问我们的工具了。那在访问的过程当中呢,它首先需要认证你的身份,那我们的密钥的第一个功能就在这里起到作用。啊,那一旦你的身份得到确认之后,那我们就需要通过你的你的密钥来获取你可以访问的工具列表。啊,这个就实现了我们密钥的第二个功能。那这个呃工具获取到之后,接下去就是 AI 的工作了。那最后呢就是 AI 来决定你调用哪一个工具。那这个时候我们的访问就进入到了下一个下一个阶段。那我们的这个 gateway 一旦收到你的工具调用请求,首先它会根据你的工具的这个标识,去寻找哪一个工具在哪里,啊就是我们这个所谓的寻址的这个阶段。那寻址的阶段完成,我们找到了工具之后呢,就要在工具和这个呃 agent 之间去建立一个隧道连接。啊,那这个隧道连接一旦完成。 接下去就是真正的工具调用的过程。那我们在啊,agent和在这个真正的 MCP server 之间的这个隧道呢,就可以完成通信的这个完全透传,透传的这个过程。那你的所有的这个呃 client 端发出的信息是原封不动,透明的送入到 MCP server 当中。那 MCP server 回答的这些内容呢,也是通过透传的方式回到这个 client 端。呃,我们做到这些实际上当中也会去啊碰到一些技术的难点。啊,那第一个这个难点呢,就是我们必须要给每一个工具去分配一个呃唯一的这个标识。啊,那这个标识呢,它不是我们普通的这种传统的这种 UUID,因为它首先要具备一个工具在哪一个 server 里的标识功能。就是说我的这个工具,它的原生是在哪一个 server,它必须要有这样的一个标识功能。那第二个的这个标识功能呢,它必须要知道我的 server 是在哪一个网络位置,是在我办公室里的,还是在我家里的,或者在我手机上的。所以呢,这个实际上在真正的这个实现当中,它是一个啊很显著的一个一个一个难点。啊,那一旦有了这个工具标识之后,那我们就要去解决下一个问题。我们通过这个工具标识,我们怎么能够发现这个工具?两,它在两个不同的环境里面,我们怎么能够去发现这个工具?我们怎么能够让两工具和 agent 之间能够建立起一个连接?然后在这个连接当中进行双向的这个数据通信。啊,这个就是第二个难点。那第三个难点呢,是一旦工具开始发起访问,啊,agent 一旦开始向工具发起访问的时候,那我们怎么根据啊工具的授权来控制你的访问? 啊,包包括刚才说你是不是有权利访问这个工具,那你是不是有权利访问用这个参数来访问这个工具,那这个也是一个需要解决的难点。那这三个难点呢,其实是整个实现当中啊最重要的三个难点。那具体的这个解决方案呢,大家可以从啊。啊呃可以从我们的这个 GitHub 的这个项目里边,项目的源码里面呢去找到答案。呃那我接下来呢就向大家演示一下我们 MCP Director 是如何使用的,那大家也可以体验一下我们的真正的这个对用户友好,对啊这个工具端友好的一个一个场景。那呃我们这个演示呢实际上啊是这样的一个场景,我们用一个第三方的啊这个,我们用一个第三方的这个 agent,那我实际上在演示当中用的是扣子,扣子的手机端,啊来让 agent 去调用我在我在私有空间的这个我的工具。那我的私有空间里面有两个工具,一个呢是在我的 Mac OS 上面的我的 reminder,啊我的这个提醒簿。另外一个呢是在我的 NAS 上面,我自己的 NAS 上面呢我装了一个 Obsidian,那它是一个我们可以认为它是一个知识库的一个管理的工具吧,它就是来帮你去管理 markdown 的一些文件,啊来组织 markdown 的一些文件。那这两个呢一个是在我的 Mac OS 上面,我的 Mac 的一个 Mac mini 的一个一个一个设备上,另外一个是在我的 NAS,它们是两个完全分开的。那首先呢我们要去下载我们的 MCP Studio,呃,呃这个这个下载的路径,这大家到我们的那个呃 GitHub 上面的这个这个项目里面可以找到,呃这个有点就是有有点断开了,下面还有后面这个 URL 后面还有一小段。 大家可以到我们上面去搜索这个 MCP Director Studio 这个这个项目。啊,那我们的呃 MCP Director Studio 呢,啊,假如你不想去注册你的账号无所谓,你可以直接用匿名的方式。大家有的时候可能也就想试试看,并不想去马上变成一个用户,那你可以你你可以用匿名的方式,不需要做任何的注册,你去用匿名的方式来使用我们的 MCP Director。那那你那大家看到这个可能看不清楚,这边是一个匿名登录的一个一个一个用户。啊,那一旦登录进去之后呢,刚才说到我们第一个阶段是要做采集,所以呢,你去用传统的你原来已经很熟悉的配置这个 MCP Server 的方法,在我们的这个 Connect MCP 的这个呃功功能下边呢,去加入这个新的 MCP Server。那加入之后呢,加入之后呢,如果你觉得这个是你需要的工这个工具的话,你就去 publish 到啊有一个 button,这边上面有一个 button 啦。啊嗯嗯,因为 publish publish 过了,所以这个 button 就不见了。你可以把它 publish 到我们的这个呃 MCP Director 里面去。那一旦 publish 上去之后呢,你的这个 server 上面就会有一个呃紫色的这个标签,写着 MCP Director,那说明你的 MCP Server 呢,已经可以通过我们的 URL 能够发现能够能够使用了。那第二步就是我们要给访问者使用者去创建一个密钥。这个密钥呢你可以去根据你的需要来自己来来创建,创建多少都可以。啊,你如果有一百种可能性,你就创建一百种,这个这个根据你的需要来来确定。那在这里呢其实我创创建了两个密钥,一个是给呃千问用的,因为因为我现在基本上算是 code 跟千问的这个忠实用户,我通常就就是用这两个这个 agent。啊,那你创建完这个密钥之后呢,那接下去你就可以给这个密钥授权。 给这个密钥授权。那大家看到呢,我实际上有两个 server,一个叫做 iMCP,这个是一个在 Mac 上面可以把你的 calendar,你的啊 contact,你的 reminder,你的啊 message,很多东西,把它转化成 MCP 的工具,就把你原来的这些应用,这些这个原生应用直接转化成 MCP 的工具。这个挺挺好用的一个一个呃 MCP tool。另外一个呢就是我们的这个 MCP 啊 OpsTeam,这个是呃也呃当然这个实际上是一个开源的啦,它是一个开源的工具,可以直接读取 OpsTeam 里边的一些内容,或者把一些这个啊你的文件放到 OpsTeam 里面。大家看到呢呃在啊一个大家看到是在 Linux 里边,一个呢是在 Mac OS 里面,它们是两个不同的环境里。啊,呃另外再跟大家说,我们的这个管理呢并不是说只能本地管理本地的,你在任何一个呃你的 studio 上面,啊比如说你在你在你的 Mac 里面有 studio,你在 Linux 里面 studio,可能你在你的办公室里也有 studio,你的任何一个 studio 呢都可以全局管理你所有的这些这些 server。那刚才我们所做的就是在我们 studio 里面的工作,我们已经完成了,我们不需要再做任何其他额外的工作了。刚才我们三步,下载,加 MCP server,给它授权,三步,我们已经完成所有的工作了。接下去呢就是该如何使用。那使用呢根据你的 agent 上面的啊这个添加 MCP 工具的这个方式,你把它加进去。大家看到我们这边有一个啊这个 URL,这个是我们一个已经公开的 URL,就是大家都可以用。你在啊呃这个刚才在做完那个那个呃 sorry,可能我又我又忘了这个说一点,呃在这里就是大家拿到了这个 key 之后呢,拿到这个 key 之后呢,实际上是可以去通过这个 key,拷呃拷贝刚才我们的 URL。 啊,那个 URL 拷贝完之后,你直接放到你的这个啊 code 或者是或者是千问里面就可以了。那这个就是在 code 的手机端做的一个配置。配置,那我们所有的这个对于工具的访问就在这一个 URL 里边。后边呢是跟的是 key,我们对 key 呢有几种这个使用方式,也是体现出用户友好。啊,这种方案呢是最方便的一种方这个方式,就是对于用户来说,你不需要这个了解什么叫这个 auth two,啊,什么是这个呃这个 authorization 的这个 key,你都不需要去了解,你只要跟着后面就可以了。啊,当然这个也有人会说这个可能不是很安全,因为啊你可能会把这个 URL 放到你的浏览器里面去,然后就会就会泄露出去。当然这个呃也会存在存在这样的这个这个问题。所以我们其实同时支持你在 URL 里面去使用 key,或者是你直接在这个啊这个我们的 head 里面,HTTP head 里面去加入这个 key,两种方式都是支持的。啊,这个只是体现出啊对用户来说没有任何技术上面的要求或者理解。加入之后,我们就开始使用了。那我们算上在 agent 里边做配置,我们一共只需要四步。啊,我相信这个应该来说是呃最简单的一个呃做法,能够让你的 agent 去用到你真正的工具。这应该是最简单的一个做法了,不会不会有比比它更简单的了。 那大家看到呢,左边是我的 calendar,左边是我的这个 reminder 里边的内容,这是实实际真正存在的,在我的这个 Mac mini 上面有的这个内容。那右边呢是呃两个截屏,因为因为因为太长,那个手机手机的屏幕太长,而且我不知道为什么它不允许我做这个长截屏,所以我就只能截两个屏啊。那我们看到呢在手机端这边呢我有一个这个呃呃任务是交给这个 codes,说你从我的呃 reminder 里面去查询我的这个提醒的这个这个信息。啊这个就是要求 codes 来帮我查询我在 reminder 里的信息。然后这个是 codes 思考的过程,它找到了对应的工具,它找到了对应的工具,啊然后它从对对应的这个工具开始调用了,它正在调用,啊调用了这个工具,然后去显示出来我的 reminder 里的信息,这个是完全一致的。那假如我让它再去后续做新的任务,比如说啊你根据我的这个 reminder,然后去帮我订杭州的票,或者是帮我去 booking 我的这个啊 zoom 的会议室,那只要后面有相对应的工具,那我就可以一次性完成所有的工作。那这边呢就是对我们的这个 opusting 里面去做的一个呃做的一个这个访问。那我这边呢是呃让它去呃这个查询我在 opusting 里面的一些文件列表,那它这边也也都这个呃呃查询出来,而且这个结果是对,那这个结果也是跟我的这个原生的这个内容是完全匹配的。那呃我们的 MCP director 呢,啊从这个 AI 的工具孤岛这个问题出发,然后去解决了我们真正 MCP,或者说我们这个 AI 工具作为可以投向啊消费者使用的最后一公里这个孤岛的这个问题。啊那用我们的这个解决方案呢,你可以这就是我们的一个 slogan,你用一个 UI 有一个 key 访问你所有的这些工具。 啊,我可能就两呃两两分钟可以可以可以结束了。那我们的 MCP Director 并没有就在啊这个就此这个停止,那我们的下一个里程碑呢是做 A to A 的 Director,因为我们前面的技术刚才说到,我们实际上可以做 A 这个 Agent 到 Agent,我们也可以做 To To 的这个这个访问。另外一个呢这个啊最后一页最后一页,另外一个呢就是啊这个是我们的一个啊呃一个一个彩蛋了,这个是我们是在开发的过程当中用到的一个开发的这个调试工具。那我们呃通过这个连接,大家看到这个连接跟我们刚才的那个呃 MCP 的那个那个连接是完全一致的。你通过这个连接后面有个后缀是 To,你就可以用 API 的方式去调用到你的这个工具。就是说我们并不是呃只有 AI 的调用方式,你可以把我的这个 MCP Director 当做你的一个 API 的网关,然后去调用。那这个说明什么呢?就是你真的可以去做系统的集成。啊,这就是我们的一个这个呃呃工具,我现在把它分享给大家,你可以用它来做 MCP,你也可以用它来做 API 调用。这个非常感谢。
最新摘要 (详细摘要)
MCP Director:开源MCP通用访问网关解决AI Agent工具孤岛问题
核心摘要
来自香港开源创业团队的尚志斌分享了MCP Director开源项目,通过一个URL和一个密钥实现Agent从任意网络环境访问部署在任何位置的所有MCP工具,彻底解决AI Agent的"工具孤岛"困境。系统采用URL复用、密钥复用、虚拟MCP Server、TCP隧道、工具唯一标识和工具入参访问控制六大技术创新,实现任意部署、随处访问、统一管理和精细授权。演示展示了使用扣子手机端调用Mac OS和NAS上私有工具的完整流程,整个配置仅需四步。项目已在GitHub开源,未来将推出工具市场、计费平台及Agent到Agent通信功能。
问题背景:AI Agent的工具孤岛困境
智能体发展现状
- 智能体发展"如火如荼"、"百花齐放",能力日新月异
- 用户期望智能体成为:
- 企业专家
- 智能管家
- 个人助手
- 实现这些功能需要智能体访问更多工具
- "万物皆工具"时代即将来临:每个应用、每个设备都可能成为智能体的工具
工具孤岛的形成
核心问题:许多工具部署在私有环境中,无法被Agent直接访问
- 工具分布位置:
- 企业内部网络
- 家庭局域网
- 个人PC
- 手机设备
- 这些独立网络环境形成了"工具孤岛效应"
突破工具孤岛的挑战
1. 部署问题
- 云端部署:成本随工具数量线性增长,对小型企业和普通消费者不可行;需解决访问私有数据的问题
- 私有环境部署:需解决从互联网访问私有环境的技术难题
2. 管理问题
- 少量MCP server配置简单
- 企业/多成员家庭环境中:
- 几十到几百个server
- 几十到几百个用户
- 需要为每个用户分配访问权限
- 管理复杂度急剧上升
3. 安全问题
- 生产环境是企业命脉
- 必须解决:
- 访问安全
- 工具授权
- 任何不安全的方案都无法在企业中真正使用
解决方案:MCP Director开源通用访问网关
项目概况
- 项目名称:MCP Director
- 开源状态:已在GitHub开源
- 核心理念:一个URL + 一个密钥 = 访问所有工具
核心功能特性
1. 任意部署,随处访问
- 工具可部署在任何位置:
- 云端
- 企业内网
- 家庭局域网
- 手机
- 汽车
- 智能设备
- 办公设备(如打印机)
- Agent可从任何网络环境访问这些工具
2. 统一管理与按需定制
- 集中管理所有MCP server和工具
- 虚拟MCP Server功能:
- 可将不同server中的工具重新组合
- 创建新的MCP server
- 无需改造原有server和client
- URL无需变化
- 解决工具冲突问题(如高德和滴滴的search_text工具冲突案例)
3. 统一认证与精细授权
- 为不同用户/场景创建不同密钥
- 每个密钥可授权访问不同的MCP server
- 每个server中的工具可单独授权
- 密钥双重功能:
- 身份验证
- 工具访问授权
- 适合团队环境使用
系统架构与核心组件
四大核心组件
1. Gateway(网关)
- 与标准MCP client无缝连接
- 只要client符合MCP协议即可连接
- 用户通过一个URL访问所有后端MCP server
2. Router(路由器)
- 实现Agent与工具之间的通信
- 支持跨不同网络环境的直连和透传
- 功能扩展:
- Agent到Agent通信(A to A模型)
- 工具到工具的相互调用
3. Value-added Services(增值服务)
- 当前功能:
- MCP server管理
- 工具管理
- 授权管理
- 即将推出:
- 工具市场:类似App Store,用户可一键安装工具
- 工具计费平台:支持订阅模式,帮助开发者将工具变现
4. Studio(工具端集中器)
- 功能定位:
- 集中本地MCP Server
- 发布工具信息到Director
- 透传工具调用请求到MCP Server
- 返回结果到Client端
- 全局管理能力:任何一个Studio(无论部署在Mac、Linux还是办公室)都可以管理所有server
- 类比:智能家居盒子
- 注:开发者也可使用SDK自行开发,无需使用Studio
六大技术创新
1. URL复用技术
问题:传统方式中,每个MCP server需要单独配置URL
- 一个server = 一个配置
- 更换client需重新配置
- 100个server = 100次配置
解决方案:
- 一个URL覆盖所有MCP server
- 100个server用一个URL
- 1000个server也用一个URL
- 配置简化到极致
2. 密钥复用技术
问题:
- 不同server有不同密钥
- 需要多次配置
- OAuth 2.0无法实现工具访问授权
- 不是所有server都支持OAuth 2.0
解决方案:
- 一个密钥解决所有问题
- 针对密钥授权不同server
- 针对密钥授权不同工具
- 兼具身份验证和工具授权功能
3. 虚拟MCP Server
应用场景:解决工具冲突问题
实际案例:
- 客户同时使用高德和滴滴的MCP server
- 两个server都有"search_text"工具,描述相似
- Agent分析时无法确定使用哪个,结果不可控
解决方案:
- 根据用户场景重新组织工具
- 从不同server中选择需要的工具
- 组合成新的虚拟MCP server
- 用户只需使用一个server
- 彻底解决工具冲突
适用场景:企业环境中的工具集管理
4. MCP内网穿透技术(TCP隧道)
技术特点:
- 区别于传统P2P打洞技术
- 区别于单台服务器端口转发
- 自研TCP隧道技术
核心优势:
- 多路复用:一个TCP连接访问多个目标
- 多目的地:同时访问不同目标
- 路由功能:
- 非简单点对点直连
- 支持跨区域连接
- 例:上海的client可连接美国的server
- 通过隧道路由技术建立直接连接
- 实现双向通信
应用价值:
- 支持全球范围大规模部署
- 传统端口转发和P2P难以达到商用级别
- 可就近为用户提供优质服务
5. 工具唯一标识技术
技术难点:
- 不是传统UUID
- 必须同时实现两个标识功能:
- 标识工具所属的server:明确工具的原生归属
- 标识server的网络位置:区分是在办公室、家里还是手机上
- 在实现中是"显著的难点"
解决价值:
- 实现跨网络环境的工具发现
- 支持精准的工具寻址
- 为透传通信提供基础
6. 工具入参访问控制(研发中)
应用场景:企业数据权限管理
实际案例:
- 企业有上海和杭州两个分部
- 员工都使用"销售数据查询"工具
- 上海员工只能查询上海数据
- 杭州员工只能查询杭州数据
传统方案问题:
- 需要为每个分部创建专门工具
- 开发效率低
创新解决方案:
- 通过AI角度限制不同用户可使用的参数范围
- 过滤返回结果中不属于用户权限的内容
- 一个工具适配多种权限场景
价值:
- 适应企业安全数据政策
- AI接管人工调度后,仍能实现细致的权限控制
- 促进AI在企业中的实际应用
系统实现原理
四个工作阶段
阶段1:发布(Publish)
1. 数据采集:从MCP server采集所有工具信息
2. 工具标识:为每个工具分配唯一的工具ID
3. 发布到Director:工具信息上传到MCP Director
阶段2:管理(Management)
1. 创建密钥:为用户/使用场景创建密钥
2. 授权关联:建立密钥与工具的授权关系
3. 双重功能:密钥同时具备身份验证和工具授权功能(区别于传统API key)
阶段3:访问(Access)
1. 身份认证:密钥验证用户身份
2. 获取工具列表:通过密钥获取可访问的工具列表
3. AI决策:AI决定调用哪个工具
阶段4:连接与通信(Connection & Communication)
1. 寻址:Gateway根据工具标识定位工具位置
2. 建立隧道:在工具和Agent之间建立隧道连接
3. 透传通信:
- Client端信息原封不动透明传送到MCP server
- MCP server响应通过透传方式返回Client端
- 实现完全透明的双向通信
技术实现的三大核心挑战
挑战1:工具唯一标识的设计
- 需要同时标识工具所属server和server网络位置
- 不同于传统UUID的复杂标识系统
- 是实现跨网络工具发现的基础
挑战2:跨网络环境的工具发现与连接
- 通过工具标识在不同网络环境中发现工具
- 建立工具与Agent之间的可靠连接
- 实现稳定的双向数据通信
挑战3:精细化访问授权控制
- 控制工具访问权限
- 控制参数使用权限
- 实现企业级的安全管理
解决方案获取:具体实现可在GitHub项目源码中找到
实际演示案例
演示场景设置
使用的Agent:扣子(Coze)手机端
私有工具配置:
1. Mac OS上的Reminder(提醒簿)
- 部署在Mac mini设备
2. NAS上的Obsidian
- 知识库管理工具
- 管理和组织markdown文件
网络环境:两个工具部署在完全分开的设备上
使用步骤(仅需四步)
步骤1:下载MCP Studio
- 下载路径:GitHub项目中可找到
- 支持匿名登录(无需注册即可试用)
步骤2:配置MCP Server
- 使用传统方式在"Connect MCP"功能下添加新的MCP Server
- 添加后点击"Publish"按钮发布到MCP Director
- 发布成功后server显示紫色"MCP Director"标签
演示中的两个server:
- iMCP:将Mac原生应用(calendar、contact、reminder、message等)转化为MCP工具
- MCP Obsidian:开源工具,读取和写入Obsidian内容
- 两个server分别部署在Mac OS和Linux环境中
步骤3:创建密钥并授权
- 根据需要创建密钥(可创建任意数量)
- 演示中创建了两个密钥:给Cursor和千问使用
- 为密钥授权可访问的server和工具
步骤4:在Agent中配置
- 复制URL(公开URL,所有人可用)
- 在扣子手机端添加MCP工具
- 支持两种密钥使用方式:
- URL中包含key:最方便,但演讲者提醒可能存在安全顾虑(URL可能泄露到浏览器)
- HTTP header中添加key:更安全的方式
演示结果
Reminder查询演示:
- 左侧展示:Mac mini上Reminder中的实际内容
- 右侧展示:手机端扣子的两个截屏(因屏幕过长无法长截屏)
- 任务:从Reminder中查询提醒信息
- Agent思考过程:找到对应工具 → 调用工具 → 显示结果
- 结果:与Mac mini上的实际内容完全一致
- 可扩展:后续可添加订票、预订会议室等工具,一次性完成所有任务
Obsidian查询演示:
- 任务:查询Obsidian中的文件列表
- 结果:成功查询,与原生内容完全匹配
未来规划与扩展功能
下一个里程碑:A to A Director
- 基于现有技术实现Agent到Agent的通信
- 支持工具到工具的访问
彩蛋功能:API网关模式
功能说明:
- 使用与MCP相同的连接URL
- 添加特定后缀即可通过API方式调用工具
- 不仅限于AI调用方式
应用价值:
- 可作为API网关使用
- 支持系统集成
- 既可用于MCP,也可用于API调用
- 这是开发过程中使用的调试工具,现分享给用户使用
项目核心价值总结
Slogan
"一个URL + 一个Key = 访问所有工具"
主要优势
- 配置极简:整个流程仅需四步,是"最简单的做法"
- 用户友好:无需技术背景,无需理解OAuth 2.0等概念
- 开发者友好:提供Studio和SDK两种接入方式
- 全局管理:任何一个Studio都可以跨设备管理所有server
- 安全可靠:精细化授权,适合企业生产环境
- 灵活部署:支持任意位置部署,随处访问
- 成本优化:避免云端部署的高成本问题
解决的核心问题
- 打破AI工具的"最后一公里"孤岛问题
- 使MCP工具真正可以投向消费者使用
- 让"万物皆工具"的时代成为可能
演讲者背景
尚志斌
- 来自香港的开源创业团队
- 28年编程经验
- 20年网络通讯技术开发经验
- 现致力于AI网络的研究和开发
项目信息
- 开源平台:GitHub
- 项目名称:MCP Director
- 项目类型:开源MCP通用访问网关
- 分享平台:GOSIM开源创新汇