[{"data":1,"prerenderedAt":3439},["ShallowReactive",2],{"blog-post-/blogs/enterprise-mcp-gateway":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"image":11,"alt":12,"ogImage":11,"tags":13,"published":19,"body":20,"_type":3432,"_id":3433,"_source":3434,"_file":3435,"_stem":3436,"_extension":3437,"sitemap":3438},"/blogs/enterprise-mcp-gateway","blogs",false,"","企业为什么需要一个轻量级 MCP 网关","当你的 AI Agent 开始连接 10 个以上的 MCP Server，问题就来了。MCPForge 为中小企业提供了一个轻量级、零依赖的 MCP 治理方案。","2026-06-22","/blogs-img/enterprise-mcp-gateway.jpg","MCP 网关架构示意图",[14,15,16,17,18],"MCP","AI Agent","网关","企业级","开源",true,{"type":21,"children":22,"toc":3406},"root",[23,31,41,48,53,89,94,102,107,114,119,719,727,745,751,756,764,772,790,796,801,819,827,833,838,930,938,956,962,968,976,981,988,1308,1313,1346,1351,1538,1544,1882,1890,1908,1914,2039,2046,2064,2070,2075,2379,2387,2405,2410,2416,2425,2433,2457,2464,2482,2488,2497,2504,2899,2906,2924,2930,2939,2946,2964,2971,2989,2994,3000,3037,3042,3048,3081,3087,3095,3100,3106,3151,3156,3271,3286,3291,3296,3344,3356,3364,3368,3395,3400],{"type":24,"tag":25,"props":26,"children":28},"element","h1",{"id":27},"企业为什么需要一个轻量级-mcp-网关",[29],{"type":30,"value":8},"text",{"type":24,"tag":32,"props":33,"children":34},"blockquote",{},[35],{"type":24,"tag":36,"props":37,"children":38},"p",{},[39],{"type":30,"value":40},"当你的 AI Agent 开始连接 10 个以上的 MCP Server，问题就来了。",{"type":24,"tag":42,"props":43,"children":45},"h2",{"id":44},"背景mcp-生态的爆发式增长",[46],{"type":30,"value":47},"背景：MCP 生态的爆发式增长",{"type":24,"tag":36,"props":49,"children":50},{},[51],{"type":30,"value":52},"2025 年，MCP（Model Context Protocol）成为 AI Agent 连接外部工具的事实标准：",{"type":24,"tag":54,"props":55,"children":56},"ul",{},[57,69,79],{"type":24,"tag":58,"props":59,"children":60},"li",{},[61,67],{"type":24,"tag":62,"props":63,"children":64},"strong",{},[65],{"type":30,"value":66},"16,000+",{"type":30,"value":68}," MCP Server 已部署",{"type":24,"tag":58,"props":70,"children":71},{},[72,77],{"type":24,"tag":62,"props":73,"children":74},{},[75],{"type":30,"value":76},"月下载量",{"type":30,"value":78}," 超过 9700 万次",{"type":24,"tag":58,"props":80,"children":81},{},[82,87],{"type":24,"tag":62,"props":83,"children":84},{},[85],{"type":30,"value":86},"所有主流 AI 厂商",{"type":30,"value":88},"（Anthropic、OpenAI、Google）均已支持",{"type":24,"tag":36,"props":90,"children":91},{},[92],{"type":30,"value":93},"MCP 解决了\"如何让 AI Agent 调用外部工具\"的问题，但带来了一个新的治理挑战：",{"type":24,"tag":36,"props":95,"children":96},{},[97],{"type":24,"tag":62,"props":98,"children":99},{},[100],{"type":30,"value":101},"当你的团队开始使用 10 个、50 个、甚至 100 个 MCP Server 时，谁来管理它们？",{"type":24,"tag":42,"props":103,"children":105},{"id":104},"企业的真实痛点",[106],{"type":30,"value":104},{"type":24,"tag":108,"props":109,"children":111},"h3",{"id":110},"_1-server-散落无法统一管理",[112],{"type":30,"value":113},"1. Server 散落，无法统一管理",{"type":24,"tag":36,"props":115,"children":116},{},[117],{"type":30,"value":118},"每个项目、每个团队都在配置自己的 MCP Server：",{"type":24,"tag":120,"props":121,"children":125},"pre",{"code":122,"language":123,"meta":7,"className":124,"style":7},"// 项目 A 的配置\n{\n  \"mcpServers\": {\n    \"filesystem\": { \"command\": \"npx\", \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\"] },\n    \"github\": { \"command\": \"npx\", \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"] }\n  }\n}\n\n// 项目 B 的配置\n{\n  \"mcpServers\": {\n    \"filesystem\": { \"command\": \"npx\", \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\"] },\n    \"database\": { \"command\": \"npx\", \"args\": [\"-y\", \"@modelcontextprotocol/server-postgres\"] }\n  }\n}\n","json","language-json shiki shiki-themes dracula",[126],{"type":24,"tag":127,"props":128,"children":129},"code",{"__ignoreMap":7},[130,142,152,184,306,417,426,435,444,453,461,485,593,703,711],{"type":24,"tag":131,"props":132,"children":135},"span",{"class":133,"line":134},"line",1,[136],{"type":24,"tag":131,"props":137,"children":139},{"style":138},"--shiki-default:#6272A4",[140],{"type":30,"value":141},"// 项目 A 的配置\n",{"type":24,"tag":131,"props":143,"children":145},{"class":133,"line":144},2,[146],{"type":24,"tag":131,"props":147,"children":149},{"style":148},"--shiki-default:#F8F8F2",[150],{"type":30,"value":151},"{\n",{"type":24,"tag":131,"props":153,"children":155},{"class":133,"line":154},3,[156,162,168,173,179],{"type":24,"tag":131,"props":157,"children":159},{"style":158},"--shiki-default:#8BE9FE",[160],{"type":30,"value":161},"  \"",{"type":24,"tag":131,"props":163,"children":165},{"style":164},"--shiki-default:#8BE9FD",[166],{"type":30,"value":167},"mcpServers",{"type":24,"tag":131,"props":169,"children":170},{"style":158},[171],{"type":30,"value":172},"\"",{"type":24,"tag":131,"props":174,"children":176},{"style":175},"--shiki-default:#FF79C6",[177],{"type":30,"value":178},":",{"type":24,"tag":131,"props":180,"children":181},{"style":148},[182],{"type":30,"value":183}," {\n",{"type":24,"tag":131,"props":185,"children":187},{"class":133,"line":186},4,[188,193,198,202,206,211,215,220,224,228,234,240,244,249,253,258,262,266,271,275,280,284,288,292,297,301],{"type":24,"tag":131,"props":189,"children":190},{"style":158},[191],{"type":30,"value":192},"    \"",{"type":24,"tag":131,"props":194,"children":195},{"style":164},[196],{"type":30,"value":197},"filesystem",{"type":24,"tag":131,"props":199,"children":200},{"style":158},[201],{"type":30,"value":172},{"type":24,"tag":131,"props":203,"children":204},{"style":175},[205],{"type":30,"value":178},{"type":24,"tag":131,"props":207,"children":208},{"style":148},[209],{"type":30,"value":210}," { ",{"type":24,"tag":131,"props":212,"children":213},{"style":158},[214],{"type":30,"value":172},{"type":24,"tag":131,"props":216,"children":217},{"style":164},[218],{"type":30,"value":219},"command",{"type":24,"tag":131,"props":221,"children":222},{"style":158},[223],{"type":30,"value":172},{"type":24,"tag":131,"props":225,"children":226},{"style":175},[227],{"type":30,"value":178},{"type":24,"tag":131,"props":229,"children":231},{"style":230},"--shiki-default:#E9F284",[232],{"type":30,"value":233}," \"",{"type":24,"tag":131,"props":235,"children":237},{"style":236},"--shiki-default:#F1FA8C",[238],{"type":30,"value":239},"npx",{"type":24,"tag":131,"props":241,"children":242},{"style":230},[243],{"type":30,"value":172},{"type":24,"tag":131,"props":245,"children":246},{"style":148},[247],{"type":30,"value":248},", ",{"type":24,"tag":131,"props":250,"children":251},{"style":158},[252],{"type":30,"value":172},{"type":24,"tag":131,"props":254,"children":255},{"style":164},[256],{"type":30,"value":257},"args",{"type":24,"tag":131,"props":259,"children":260},{"style":158},[261],{"type":30,"value":172},{"type":24,"tag":131,"props":263,"children":264},{"style":175},[265],{"type":30,"value":178},{"type":24,"tag":131,"props":267,"children":268},{"style":148},[269],{"type":30,"value":270}," [",{"type":24,"tag":131,"props":272,"children":273},{"style":230},[274],{"type":30,"value":172},{"type":24,"tag":131,"props":276,"children":277},{"style":236},[278],{"type":30,"value":279},"-y",{"type":24,"tag":131,"props":281,"children":282},{"style":230},[283],{"type":30,"value":172},{"type":24,"tag":131,"props":285,"children":286},{"style":148},[287],{"type":30,"value":248},{"type":24,"tag":131,"props":289,"children":290},{"style":230},[291],{"type":30,"value":172},{"type":24,"tag":131,"props":293,"children":294},{"style":236},[295],{"type":30,"value":296},"@modelcontextprotocol/server-filesystem",{"type":24,"tag":131,"props":298,"children":299},{"style":230},[300],{"type":30,"value":172},{"type":24,"tag":131,"props":302,"children":303},{"style":148},[304],{"type":30,"value":305},"] },\n",{"type":24,"tag":131,"props":307,"children":309},{"class":133,"line":308},5,[310,314,319,323,327,331,335,339,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,408,412],{"type":24,"tag":131,"props":311,"children":312},{"style":158},[313],{"type":30,"value":192},{"type":24,"tag":131,"props":315,"children":316},{"style":164},[317],{"type":30,"value":318},"github",{"type":24,"tag":131,"props":320,"children":321},{"style":158},[322],{"type":30,"value":172},{"type":24,"tag":131,"props":324,"children":325},{"style":175},[326],{"type":30,"value":178},{"type":24,"tag":131,"props":328,"children":329},{"style":148},[330],{"type":30,"value":210},{"type":24,"tag":131,"props":332,"children":333},{"style":158},[334],{"type":30,"value":172},{"type":24,"tag":131,"props":336,"children":337},{"style":164},[338],{"type":30,"value":219},{"type":24,"tag":131,"props":340,"children":341},{"style":158},[342],{"type":30,"value":172},{"type":24,"tag":131,"props":344,"children":345},{"style":175},[346],{"type":30,"value":178},{"type":24,"tag":131,"props":348,"children":349},{"style":230},[350],{"type":30,"value":233},{"type":24,"tag":131,"props":352,"children":353},{"style":236},[354],{"type":30,"value":239},{"type":24,"tag":131,"props":356,"children":357},{"style":230},[358],{"type":30,"value":172},{"type":24,"tag":131,"props":360,"children":361},{"style":148},[362],{"type":30,"value":248},{"type":24,"tag":131,"props":364,"children":365},{"style":158},[366],{"type":30,"value":172},{"type":24,"tag":131,"props":368,"children":369},{"style":164},[370],{"type":30,"value":257},{"type":24,"tag":131,"props":372,"children":373},{"style":158},[374],{"type":30,"value":172},{"type":24,"tag":131,"props":376,"children":377},{"style":175},[378],{"type":30,"value":178},{"type":24,"tag":131,"props":380,"children":381},{"style":148},[382],{"type":30,"value":270},{"type":24,"tag":131,"props":384,"children":385},{"style":230},[386],{"type":30,"value":172},{"type":24,"tag":131,"props":388,"children":389},{"style":236},[390],{"type":30,"value":279},{"type":24,"tag":131,"props":392,"children":393},{"style":230},[394],{"type":30,"value":172},{"type":24,"tag":131,"props":396,"children":397},{"style":148},[398],{"type":30,"value":248},{"type":24,"tag":131,"props":400,"children":401},{"style":230},[402],{"type":30,"value":172},{"type":24,"tag":131,"props":404,"children":405},{"style":236},[406],{"type":30,"value":407},"@modelcontextprotocol/server-github",{"type":24,"tag":131,"props":409,"children":410},{"style":230},[411],{"type":30,"value":172},{"type":24,"tag":131,"props":413,"children":414},{"style":148},[415],{"type":30,"value":416},"] }\n",{"type":24,"tag":131,"props":418,"children":420},{"class":133,"line":419},6,[421],{"type":24,"tag":131,"props":422,"children":423},{"style":148},[424],{"type":30,"value":425},"  }\n",{"type":24,"tag":131,"props":427,"children":429},{"class":133,"line":428},7,[430],{"type":24,"tag":131,"props":431,"children":432},{"style":148},[433],{"type":30,"value":434},"}\n",{"type":24,"tag":131,"props":436,"children":438},{"class":133,"line":437},8,[439],{"type":24,"tag":131,"props":440,"children":441},{"emptyLinePlaceholder":19},[442],{"type":30,"value":443},"\n",{"type":24,"tag":131,"props":445,"children":447},{"class":133,"line":446},9,[448],{"type":24,"tag":131,"props":449,"children":450},{"style":138},[451],{"type":30,"value":452},"// 项目 B 的配置\n",{"type":24,"tag":131,"props":454,"children":456},{"class":133,"line":455},10,[457],{"type":24,"tag":131,"props":458,"children":459},{"style":148},[460],{"type":30,"value":151},{"type":24,"tag":131,"props":462,"children":464},{"class":133,"line":463},11,[465,469,473,477,481],{"type":24,"tag":131,"props":466,"children":467},{"style":158},[468],{"type":30,"value":161},{"type":24,"tag":131,"props":470,"children":471},{"style":164},[472],{"type":30,"value":167},{"type":24,"tag":131,"props":474,"children":475},{"style":158},[476],{"type":30,"value":172},{"type":24,"tag":131,"props":478,"children":479},{"style":175},[480],{"type":30,"value":178},{"type":24,"tag":131,"props":482,"children":483},{"style":148},[484],{"type":30,"value":183},{"type":24,"tag":131,"props":486,"children":488},{"class":133,"line":487},12,[489,493,497,501,505,509,513,517,521,525,529,533,537,541,545,549,553,557,561,565,569,573,577,581,585,589],{"type":24,"tag":131,"props":490,"children":491},{"style":158},[492],{"type":30,"value":192},{"type":24,"tag":131,"props":494,"children":495},{"style":164},[496],{"type":30,"value":197},{"type":24,"tag":131,"props":498,"children":499},{"style":158},[500],{"type":30,"value":172},{"type":24,"tag":131,"props":502,"children":503},{"style":175},[504],{"type":30,"value":178},{"type":24,"tag":131,"props":506,"children":507},{"style":148},[508],{"type":30,"value":210},{"type":24,"tag":131,"props":510,"children":511},{"style":158},[512],{"type":30,"value":172},{"type":24,"tag":131,"props":514,"children":515},{"style":164},[516],{"type":30,"value":219},{"type":24,"tag":131,"props":518,"children":519},{"style":158},[520],{"type":30,"value":172},{"type":24,"tag":131,"props":522,"children":523},{"style":175},[524],{"type":30,"value":178},{"type":24,"tag":131,"props":526,"children":527},{"style":230},[528],{"type":30,"value":233},{"type":24,"tag":131,"props":530,"children":531},{"style":236},[532],{"type":30,"value":239},{"type":24,"tag":131,"props":534,"children":535},{"style":230},[536],{"type":30,"value":172},{"type":24,"tag":131,"props":538,"children":539},{"style":148},[540],{"type":30,"value":248},{"type":24,"tag":131,"props":542,"children":543},{"style":158},[544],{"type":30,"value":172},{"type":24,"tag":131,"props":546,"children":547},{"style":164},[548],{"type":30,"value":257},{"type":24,"tag":131,"props":550,"children":551},{"style":158},[552],{"type":30,"value":172},{"type":24,"tag":131,"props":554,"children":555},{"style":175},[556],{"type":30,"value":178},{"type":24,"tag":131,"props":558,"children":559},{"style":148},[560],{"type":30,"value":270},{"type":24,"tag":131,"props":562,"children":563},{"style":230},[564],{"type":30,"value":172},{"type":24,"tag":131,"props":566,"children":567},{"style":236},[568],{"type":30,"value":279},{"type":24,"tag":131,"props":570,"children":571},{"style":230},[572],{"type":30,"value":172},{"type":24,"tag":131,"props":574,"children":575},{"style":148},[576],{"type":30,"value":248},{"type":24,"tag":131,"props":578,"children":579},{"style":230},[580],{"type":30,"value":172},{"type":24,"tag":131,"props":582,"children":583},{"style":236},[584],{"type":30,"value":296},{"type":24,"tag":131,"props":586,"children":587},{"style":230},[588],{"type":30,"value":172},{"type":24,"tag":131,"props":590,"children":591},{"style":148},[592],{"type":30,"value":305},{"type":24,"tag":131,"props":594,"children":596},{"class":133,"line":595},13,[597,601,606,610,614,618,622,626,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,695,699],{"type":24,"tag":131,"props":598,"children":599},{"style":158},[600],{"type":30,"value":192},{"type":24,"tag":131,"props":602,"children":603},{"style":164},[604],{"type":30,"value":605},"database",{"type":24,"tag":131,"props":607,"children":608},{"style":158},[609],{"type":30,"value":172},{"type":24,"tag":131,"props":611,"children":612},{"style":175},[613],{"type":30,"value":178},{"type":24,"tag":131,"props":615,"children":616},{"style":148},[617],{"type":30,"value":210},{"type":24,"tag":131,"props":619,"children":620},{"style":158},[621],{"type":30,"value":172},{"type":24,"tag":131,"props":623,"children":624},{"style":164},[625],{"type":30,"value":219},{"type":24,"tag":131,"props":627,"children":628},{"style":158},[629],{"type":30,"value":172},{"type":24,"tag":131,"props":631,"children":632},{"style":175},[633],{"type":30,"value":178},{"type":24,"tag":131,"props":635,"children":636},{"style":230},[637],{"type":30,"value":233},{"type":24,"tag":131,"props":639,"children":640},{"style":236},[641],{"type":30,"value":239},{"type":24,"tag":131,"props":643,"children":644},{"style":230},[645],{"type":30,"value":172},{"type":24,"tag":131,"props":647,"children":648},{"style":148},[649],{"type":30,"value":248},{"type":24,"tag":131,"props":651,"children":652},{"style":158},[653],{"type":30,"value":172},{"type":24,"tag":131,"props":655,"children":656},{"style":164},[657],{"type":30,"value":257},{"type":24,"tag":131,"props":659,"children":660},{"style":158},[661],{"type":30,"value":172},{"type":24,"tag":131,"props":663,"children":664},{"style":175},[665],{"type":30,"value":178},{"type":24,"tag":131,"props":667,"children":668},{"style":148},[669],{"type":30,"value":270},{"type":24,"tag":131,"props":671,"children":672},{"style":230},[673],{"type":30,"value":172},{"type":24,"tag":131,"props":675,"children":676},{"style":236},[677],{"type":30,"value":279},{"type":24,"tag":131,"props":679,"children":680},{"style":230},[681],{"type":30,"value":172},{"type":24,"tag":131,"props":683,"children":684},{"style":148},[685],{"type":30,"value":248},{"type":24,"tag":131,"props":687,"children":688},{"style":230},[689],{"type":30,"value":172},{"type":24,"tag":131,"props":691,"children":692},{"style":236},[693],{"type":30,"value":694},"@modelcontextprotocol/server-postgres",{"type":24,"tag":131,"props":696,"children":697},{"style":230},[698],{"type":30,"value":172},{"type":24,"tag":131,"props":700,"children":701},{"style":148},[702],{"type":30,"value":416},{"type":24,"tag":131,"props":704,"children":706},{"class":133,"line":705},14,[707],{"type":24,"tag":131,"props":708,"children":709},{"style":148},[710],{"type":30,"value":425},{"type":24,"tag":131,"props":712,"children":714},{"class":133,"line":713},15,[715],{"type":24,"tag":131,"props":716,"children":717},{"style":148},[718],{"type":30,"value":434},{"type":24,"tag":36,"props":720,"children":721},{},[722],{"type":24,"tag":62,"props":723,"children":724},{},[725],{"type":30,"value":726},"问题：",{"type":24,"tag":54,"props":728,"children":729},{},[730,735,740],{"type":24,"tag":58,"props":731,"children":732},{},[733],{"type":30,"value":734},"配置重复，维护成本高",{"type":24,"tag":58,"props":736,"children":737},{},[738],{"type":30,"value":739},"每个 AI 客户端（Claude Code、Cursor、VS Code）都要单独配置",{"type":24,"tag":58,"props":741,"children":742},{},[743],{"type":30,"value":744},"无法全局查看\"我们到底用了哪些工具\"",{"type":24,"tag":108,"props":746,"children":748},{"id":747},"_2-无权限控制安全风险巨大",[749],{"type":30,"value":750},"2. 无权限控制，安全风险巨大",{"type":24,"tag":36,"props":752,"children":753},{},[754],{"type":30,"value":755},"默认情况下，任何能访问 MCP Server 的 Agent 都能调用所有工具：",{"type":24,"tag":120,"props":757,"children":759},{"code":758},"Agent A → 调用 filesystem.delete_file() → 删除了生产数据 ❌\nAgent B → 调用 database.execute() → 执行了危险的 SQL ❌\n",[760],{"type":24,"tag":127,"props":761,"children":762},{"__ignoreMap":7},[763],{"type":30,"value":758},{"type":24,"tag":36,"props":765,"children":766},{},[767],{"type":24,"tag":62,"props":768,"children":769},{},[770],{"type":30,"value":771},"企业需要的是：",{"type":24,"tag":54,"props":773,"children":774},{},[775,780,785],{"type":24,"tag":58,"props":776,"children":777},{},[778],{"type":30,"value":779},"基于角色的访问控制（RBAC）",{"type":24,"tag":58,"props":781,"children":782},{},[783],{"type":30,"value":784},"工具级别的权限管理",{"type":24,"tag":58,"props":786,"children":787},{},[788],{"type":30,"value":789},"危险操作的拦截和审批",{"type":24,"tag":108,"props":791,"children":793},{"id":792},"_3-无监控出了问题无法追溯",[794],{"type":30,"value":795},"3. 无监控，出了问题无法追溯",{"type":24,"tag":36,"props":797,"children":798},{},[799],{"type":30,"value":800},"当 AI Agent 调用工具失败时，你无法回答：",{"type":24,"tag":54,"props":802,"children":803},{},[804,809,814],{"type":24,"tag":58,"props":805,"children":806},{},[807],{"type":30,"value":808},"哪个 Agent 调用了什么工具？",{"type":24,"tag":58,"props":810,"children":811},{},[812],{"type":30,"value":813},"调用频率如何？成功率多少？",{"type":24,"tag":58,"props":815,"children":816},{},[817],{"type":30,"value":818},"延迟是多少？有没有性能瓶颈？",{"type":24,"tag":36,"props":820,"children":821},{},[822],{"type":24,"tag":62,"props":823,"children":824},{},[825],{"type":30,"value":826},"没有可观测性，就没有治理能力。",{"type":24,"tag":108,"props":828,"children":830},{"id":829},"_4-现有方案太重",[831],{"type":30,"value":832},"4. 现有方案太重",{"type":24,"tag":36,"props":834,"children":835},{},[836],{"type":30,"value":837},"市面上的 MCP 网关方案：",{"type":24,"tag":839,"props":840,"children":841},"table",{},[842,861],{"type":24,"tag":843,"props":844,"children":845},"thead",{},[846],{"type":24,"tag":847,"props":848,"children":849},"tr",{},[850,856],{"type":24,"tag":851,"props":852,"children":853},"th",{},[854],{"type":30,"value":855},"方案",{"type":24,"tag":851,"props":857,"children":858},{},[859],{"type":30,"value":860},"问题",{"type":24,"tag":862,"props":863,"children":864},"tbody",{},[865,882,898,914],{"type":24,"tag":847,"props":866,"children":867},{},[868,877],{"type":24,"tag":869,"props":870,"children":871},"td",{},[872],{"type":24,"tag":62,"props":873,"children":874},{},[875],{"type":30,"value":876},"Microsoft MCP Gateway",{"type":24,"tag":869,"props":878,"children":879},{},[880],{"type":30,"value":881},"需要 Kubernetes，运维成本高",{"type":24,"tag":847,"props":883,"children":884},{},[885,893],{"type":24,"tag":869,"props":886,"children":887},{},[888],{"type":24,"tag":62,"props":889,"children":890},{},[891],{"type":30,"value":892},"Docker MCP Gateway",{"type":24,"tag":869,"props":894,"children":895},{},[896],{"type":30,"value":897},"需要 Docker Desktop 商业版",{"type":24,"tag":847,"props":899,"children":900},{},[901,909],{"type":24,"tag":869,"props":902,"children":903},{},[904],{"type":24,"tag":62,"props":905,"children":906},{},[907],{"type":30,"value":908},"IBM ContextForge",{"type":24,"tag":869,"props":910,"children":911},{},[912],{"type":30,"value":913},"企业级功能复杂，学习曲线陡峭",{"type":24,"tag":847,"props":915,"children":916},{},[917,925],{"type":24,"tag":869,"props":918,"children":919},{},[920],{"type":24,"tag":62,"props":921,"children":922},{},[923],{"type":30,"value":924},"Kong AI Gateway",{"type":24,"tag":869,"props":926,"children":927},{},[928],{"type":30,"value":929},"企业版收费，开源版功能有限",{"type":24,"tag":36,"props":931,"children":932},{},[933],{"type":24,"tag":62,"props":934,"children":935},{},[936],{"type":30,"value":937},"企业的真实需求是：",{"type":24,"tag":54,"props":939,"children":940},{},[941,946,951],{"type":24,"tag":58,"props":942,"children":943},{},[944],{"type":30,"value":945},"零依赖部署（不需要 K8s/Docker）",{"type":24,"tag":58,"props":947,"children":948},{},[949],{"type":30,"value":950},"快速上手（10 分钟内跑起来）",{"type":24,"tag":58,"props":952,"children":953},{},[954],{"type":30,"value":955},"渐进式复杂度（按需开启高级功能）",{"type":24,"tag":42,"props":957,"children":959},{"id":958},"mcpforge为中小企业设计的-mcp-网关",[960],{"type":30,"value":961},"MCPForge：为中小企业设计的 MCP 网关",{"type":24,"tag":108,"props":963,"children":965},{"id":964},"设计理念渐进式复杂度",[966],{"type":30,"value":967},"设计理念：渐进式复杂度",{"type":24,"tag":120,"props":969,"children":971},{"code":970},"个人开发者 → 一个 YAML 配置就能用\n小团队     → 开启 API Key + 限流\n企业       → 接入 OAuth + Prometheus + 审计日志\n",[972],{"type":24,"tag":127,"props":973,"children":974},{"__ignoreMap":7},[975],{"type":30,"value":970},{"type":24,"tag":108,"props":977,"children":979},{"id":978},"核心能力",[980],{"type":30,"value":978},{"type":24,"tag":982,"props":983,"children":985},"h4",{"id":984},"_1-统一入口一次配置处处可用",[986],{"type":30,"value":987},"1. 统一入口，一次配置处处可用",{"type":24,"tag":120,"props":989,"children":993},{"code":990,"language":991,"meta":7,"className":992,"style":7},"# mcpforge.yaml\nservers:\n  filesystem:\n    command: npx\n    args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/data\"]\n  \n  github:\n    url: https://mcp.github.com\n    headers:\n      Authorization: \"Bearer ${GITHUB_TOKEN}\"\n  \n  database:\n    command: npx\n    args: [\"-y\", \"@modelcontextprotocol/server-postgres\"]\n\ngateway:\n  port: 8080\n","yaml","language-yaml shiki shiki-themes dracula",[994],{"type":24,"tag":127,"props":995,"children":996},{"__ignoreMap":7},[997,1005,1018,1030,1047,1113,1121,1133,1150,1162,1188,1195,1207,1222,1269,1276,1289],{"type":24,"tag":131,"props":998,"children":999},{"class":133,"line":134},[1000],{"type":24,"tag":131,"props":1001,"children":1002},{"style":138},[1003],{"type":30,"value":1004},"# mcpforge.yaml\n",{"type":24,"tag":131,"props":1006,"children":1007},{"class":133,"line":144},[1008,1013],{"type":24,"tag":131,"props":1009,"children":1010},{"style":164},[1011],{"type":30,"value":1012},"servers",{"type":24,"tag":131,"props":1014,"children":1015},{"style":175},[1016],{"type":30,"value":1017},":\n",{"type":24,"tag":131,"props":1019,"children":1020},{"class":133,"line":154},[1021,1026],{"type":24,"tag":131,"props":1022,"children":1023},{"style":164},[1024],{"type":30,"value":1025},"  filesystem",{"type":24,"tag":131,"props":1027,"children":1028},{"style":175},[1029],{"type":30,"value":1017},{"type":24,"tag":131,"props":1031,"children":1032},{"class":133,"line":186},[1033,1038,1042],{"type":24,"tag":131,"props":1034,"children":1035},{"style":164},[1036],{"type":30,"value":1037},"    command",{"type":24,"tag":131,"props":1039,"children":1040},{"style":175},[1041],{"type":30,"value":178},{"type":24,"tag":131,"props":1043,"children":1044},{"style":236},[1045],{"type":30,"value":1046}," npx\n",{"type":24,"tag":131,"props":1048,"children":1049},{"class":133,"line":308},[1050,1055,1059,1063,1067,1071,1075,1079,1083,1087,1091,1095,1099,1104,1108],{"type":24,"tag":131,"props":1051,"children":1052},{"style":164},[1053],{"type":30,"value":1054},"    args",{"type":24,"tag":131,"props":1056,"children":1057},{"style":175},[1058],{"type":30,"value":178},{"type":24,"tag":131,"props":1060,"children":1061},{"style":148},[1062],{"type":30,"value":270},{"type":24,"tag":131,"props":1064,"children":1065},{"style":230},[1066],{"type":30,"value":172},{"type":24,"tag":131,"props":1068,"children":1069},{"style":236},[1070],{"type":30,"value":279},{"type":24,"tag":131,"props":1072,"children":1073},{"style":230},[1074],{"type":30,"value":172},{"type":24,"tag":131,"props":1076,"children":1077},{"style":148},[1078],{"type":30,"value":248},{"type":24,"tag":131,"props":1080,"children":1081},{"style":230},[1082],{"type":30,"value":172},{"type":24,"tag":131,"props":1084,"children":1085},{"style":236},[1086],{"type":30,"value":296},{"type":24,"tag":131,"props":1088,"children":1089},{"style":230},[1090],{"type":30,"value":172},{"type":24,"tag":131,"props":1092,"children":1093},{"style":148},[1094],{"type":30,"value":248},{"type":24,"tag":131,"props":1096,"children":1097},{"style":230},[1098],{"type":30,"value":172},{"type":24,"tag":131,"props":1100,"children":1101},{"style":236},[1102],{"type":30,"value":1103},"/data",{"type":24,"tag":131,"props":1105,"children":1106},{"style":230},[1107],{"type":30,"value":172},{"type":24,"tag":131,"props":1109,"children":1110},{"style":148},[1111],{"type":30,"value":1112},"]\n",{"type":24,"tag":131,"props":1114,"children":1115},{"class":133,"line":419},[1116],{"type":24,"tag":131,"props":1117,"children":1118},{"style":148},[1119],{"type":30,"value":1120},"  \n",{"type":24,"tag":131,"props":1122,"children":1123},{"class":133,"line":428},[1124,1129],{"type":24,"tag":131,"props":1125,"children":1126},{"style":164},[1127],{"type":30,"value":1128},"  github",{"type":24,"tag":131,"props":1130,"children":1131},{"style":175},[1132],{"type":30,"value":1017},{"type":24,"tag":131,"props":1134,"children":1135},{"class":133,"line":437},[1136,1141,1145],{"type":24,"tag":131,"props":1137,"children":1138},{"style":164},[1139],{"type":30,"value":1140},"    url",{"type":24,"tag":131,"props":1142,"children":1143},{"style":175},[1144],{"type":30,"value":178},{"type":24,"tag":131,"props":1146,"children":1147},{"style":236},[1148],{"type":30,"value":1149}," https://mcp.github.com\n",{"type":24,"tag":131,"props":1151,"children":1152},{"class":133,"line":446},[1153,1158],{"type":24,"tag":131,"props":1154,"children":1155},{"style":164},[1156],{"type":30,"value":1157},"    headers",{"type":24,"tag":131,"props":1159,"children":1160},{"style":175},[1161],{"type":30,"value":1017},{"type":24,"tag":131,"props":1163,"children":1164},{"class":133,"line":455},[1165,1170,1174,1178,1183],{"type":24,"tag":131,"props":1166,"children":1167},{"style":164},[1168],{"type":30,"value":1169},"      Authorization",{"type":24,"tag":131,"props":1171,"children":1172},{"style":175},[1173],{"type":30,"value":178},{"type":24,"tag":131,"props":1175,"children":1176},{"style":230},[1177],{"type":30,"value":233},{"type":24,"tag":131,"props":1179,"children":1180},{"style":236},[1181],{"type":30,"value":1182},"Bearer ${GITHUB_TOKEN}",{"type":24,"tag":131,"props":1184,"children":1185},{"style":230},[1186],{"type":30,"value":1187},"\"\n",{"type":24,"tag":131,"props":1189,"children":1190},{"class":133,"line":463},[1191],{"type":24,"tag":131,"props":1192,"children":1193},{"style":148},[1194],{"type":30,"value":1120},{"type":24,"tag":131,"props":1196,"children":1197},{"class":133,"line":487},[1198,1203],{"type":24,"tag":131,"props":1199,"children":1200},{"style":164},[1201],{"type":30,"value":1202},"  database",{"type":24,"tag":131,"props":1204,"children":1205},{"style":175},[1206],{"type":30,"value":1017},{"type":24,"tag":131,"props":1208,"children":1209},{"class":133,"line":595},[1210,1214,1218],{"type":24,"tag":131,"props":1211,"children":1212},{"style":164},[1213],{"type":30,"value":1037},{"type":24,"tag":131,"props":1215,"children":1216},{"style":175},[1217],{"type":30,"value":178},{"type":24,"tag":131,"props":1219,"children":1220},{"style":236},[1221],{"type":30,"value":1046},{"type":24,"tag":131,"props":1223,"children":1224},{"class":133,"line":705},[1225,1229,1233,1237,1241,1245,1249,1253,1257,1261,1265],{"type":24,"tag":131,"props":1226,"children":1227},{"style":164},[1228],{"type":30,"value":1054},{"type":24,"tag":131,"props":1230,"children":1231},{"style":175},[1232],{"type":30,"value":178},{"type":24,"tag":131,"props":1234,"children":1235},{"style":148},[1236],{"type":30,"value":270},{"type":24,"tag":131,"props":1238,"children":1239},{"style":230},[1240],{"type":30,"value":172},{"type":24,"tag":131,"props":1242,"children":1243},{"style":236},[1244],{"type":30,"value":279},{"type":24,"tag":131,"props":1246,"children":1247},{"style":230},[1248],{"type":30,"value":172},{"type":24,"tag":131,"props":1250,"children":1251},{"style":148},[1252],{"type":30,"value":248},{"type":24,"tag":131,"props":1254,"children":1255},{"style":230},[1256],{"type":30,"value":172},{"type":24,"tag":131,"props":1258,"children":1259},{"style":236},[1260],{"type":30,"value":694},{"type":24,"tag":131,"props":1262,"children":1263},{"style":230},[1264],{"type":30,"value":172},{"type":24,"tag":131,"props":1266,"children":1267},{"style":148},[1268],{"type":30,"value":1112},{"type":24,"tag":131,"props":1270,"children":1271},{"class":133,"line":713},[1272],{"type":24,"tag":131,"props":1273,"children":1274},{"emptyLinePlaceholder":19},[1275],{"type":30,"value":443},{"type":24,"tag":131,"props":1277,"children":1279},{"class":133,"line":1278},16,[1280,1285],{"type":24,"tag":131,"props":1281,"children":1282},{"style":164},[1283],{"type":30,"value":1284},"gateway",{"type":24,"tag":131,"props":1286,"children":1287},{"style":175},[1288],{"type":30,"value":1017},{"type":24,"tag":131,"props":1290,"children":1292},{"class":133,"line":1291},17,[1293,1298,1302],{"type":24,"tag":131,"props":1294,"children":1295},{"style":164},[1296],{"type":30,"value":1297},"  port",{"type":24,"tag":131,"props":1299,"children":1300},{"style":175},[1301],{"type":30,"value":178},{"type":24,"tag":131,"props":1303,"children":1305},{"style":1304},"--shiki-default:#BD93F9",[1306],{"type":30,"value":1307}," 8080\n",{"type":24,"tag":36,"props":1309,"children":1310},{},[1311],{"type":30,"value":1312},"启动网关：",{"type":24,"tag":120,"props":1314,"children":1318},{"code":1315,"language":1316,"meta":7,"className":1317,"style":7},"mcpforge serve --config mcpforge.yaml\n","bash","language-bash shiki shiki-themes dracula",[1319],{"type":24,"tag":127,"props":1320,"children":1321},{"__ignoreMap":7},[1322],{"type":24,"tag":131,"props":1323,"children":1324},{"class":133,"line":134},[1325,1331,1336,1341],{"type":24,"tag":131,"props":1326,"children":1328},{"style":1327},"--shiki-default:#50FA7B",[1329],{"type":30,"value":1330},"mcpforge",{"type":24,"tag":131,"props":1332,"children":1333},{"style":236},[1334],{"type":30,"value":1335}," serve",{"type":24,"tag":131,"props":1337,"children":1338},{"style":1304},[1339],{"type":30,"value":1340}," --config",{"type":24,"tag":131,"props":1342,"children":1343},{"style":236},[1344],{"type":30,"value":1345}," mcpforge.yaml\n",{"type":24,"tag":36,"props":1347,"children":1348},{},[1349],{"type":30,"value":1350},"所有 AI 客户端只需配置一个端点：",{"type":24,"tag":120,"props":1352,"children":1354},{"code":1353,"language":123,"meta":7,"className":124,"style":7},"{\n  \"mcpServers\": {\n    \"mcpforge\": {\n      \"url\": \"http://localhost:8080/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer mk_live_xxx\"\n      }\n    }\n  }\n}\n",[1355],{"type":24,"tag":127,"props":1356,"children":1357},{"__ignoreMap":7},[1358,1365,1388,1411,1450,1474,1508,1516,1524,1531],{"type":24,"tag":131,"props":1359,"children":1360},{"class":133,"line":134},[1361],{"type":24,"tag":131,"props":1362,"children":1363},{"style":148},[1364],{"type":30,"value":151},{"type":24,"tag":131,"props":1366,"children":1367},{"class":133,"line":144},[1368,1372,1376,1380,1384],{"type":24,"tag":131,"props":1369,"children":1370},{"style":158},[1371],{"type":30,"value":161},{"type":24,"tag":131,"props":1373,"children":1374},{"style":164},[1375],{"type":30,"value":167},{"type":24,"tag":131,"props":1377,"children":1378},{"style":158},[1379],{"type":30,"value":172},{"type":24,"tag":131,"props":1381,"children":1382},{"style":175},[1383],{"type":30,"value":178},{"type":24,"tag":131,"props":1385,"children":1386},{"style":148},[1387],{"type":30,"value":183},{"type":24,"tag":131,"props":1389,"children":1390},{"class":133,"line":154},[1391,1395,1399,1403,1407],{"type":24,"tag":131,"props":1392,"children":1393},{"style":158},[1394],{"type":30,"value":192},{"type":24,"tag":131,"props":1396,"children":1397},{"style":164},[1398],{"type":30,"value":1330},{"type":24,"tag":131,"props":1400,"children":1401},{"style":158},[1402],{"type":30,"value":172},{"type":24,"tag":131,"props":1404,"children":1405},{"style":175},[1406],{"type":30,"value":178},{"type":24,"tag":131,"props":1408,"children":1409},{"style":148},[1410],{"type":30,"value":183},{"type":24,"tag":131,"props":1412,"children":1413},{"class":133,"line":186},[1414,1419,1424,1428,1432,1436,1441,1445],{"type":24,"tag":131,"props":1415,"children":1416},{"style":158},[1417],{"type":30,"value":1418},"      \"",{"type":24,"tag":131,"props":1420,"children":1421},{"style":164},[1422],{"type":30,"value":1423},"url",{"type":24,"tag":131,"props":1425,"children":1426},{"style":158},[1427],{"type":30,"value":172},{"type":24,"tag":131,"props":1429,"children":1430},{"style":175},[1431],{"type":30,"value":178},{"type":24,"tag":131,"props":1433,"children":1434},{"style":230},[1435],{"type":30,"value":233},{"type":24,"tag":131,"props":1437,"children":1438},{"style":236},[1439],{"type":30,"value":1440},"http://localhost:8080/mcp",{"type":24,"tag":131,"props":1442,"children":1443},{"style":230},[1444],{"type":30,"value":172},{"type":24,"tag":131,"props":1446,"children":1447},{"style":148},[1448],{"type":30,"value":1449},",\n",{"type":24,"tag":131,"props":1451,"children":1452},{"class":133,"line":308},[1453,1457,1462,1466,1470],{"type":24,"tag":131,"props":1454,"children":1455},{"style":158},[1456],{"type":30,"value":1418},{"type":24,"tag":131,"props":1458,"children":1459},{"style":164},[1460],{"type":30,"value":1461},"headers",{"type":24,"tag":131,"props":1463,"children":1464},{"style":158},[1465],{"type":30,"value":172},{"type":24,"tag":131,"props":1467,"children":1468},{"style":175},[1469],{"type":30,"value":178},{"type":24,"tag":131,"props":1471,"children":1472},{"style":148},[1473],{"type":30,"value":183},{"type":24,"tag":131,"props":1475,"children":1476},{"class":133,"line":419},[1477,1482,1487,1491,1495,1499,1504],{"type":24,"tag":131,"props":1478,"children":1479},{"style":158},[1480],{"type":30,"value":1481},"        \"",{"type":24,"tag":131,"props":1483,"children":1484},{"style":164},[1485],{"type":30,"value":1486},"Authorization",{"type":24,"tag":131,"props":1488,"children":1489},{"style":158},[1490],{"type":30,"value":172},{"type":24,"tag":131,"props":1492,"children":1493},{"style":175},[1494],{"type":30,"value":178},{"type":24,"tag":131,"props":1496,"children":1497},{"style":230},[1498],{"type":30,"value":233},{"type":24,"tag":131,"props":1500,"children":1501},{"style":236},[1502],{"type":30,"value":1503},"Bearer mk_live_xxx",{"type":24,"tag":131,"props":1505,"children":1506},{"style":230},[1507],{"type":30,"value":1187},{"type":24,"tag":131,"props":1509,"children":1510},{"class":133,"line":428},[1511],{"type":24,"tag":131,"props":1512,"children":1513},{"style":148},[1514],{"type":30,"value":1515},"      }\n",{"type":24,"tag":131,"props":1517,"children":1518},{"class":133,"line":437},[1519],{"type":24,"tag":131,"props":1520,"children":1521},{"style":148},[1522],{"type":30,"value":1523},"    }\n",{"type":24,"tag":131,"props":1525,"children":1526},{"class":133,"line":446},[1527],{"type":24,"tag":131,"props":1528,"children":1529},{"style":148},[1530],{"type":30,"value":425},{"type":24,"tag":131,"props":1532,"children":1533},{"class":133,"line":455},[1534],{"type":24,"tag":131,"props":1535,"children":1536},{"style":148},[1537],{"type":30,"value":434},{"type":24,"tag":982,"props":1539,"children":1541},{"id":1540},"_2-细粒度的权限控制",[1542],{"type":30,"value":1543},"2. 细粒度的权限控制",{"type":24,"tag":120,"props":1545,"children":1547},{"code":1546,"language":991,"meta":7,"className":992,"style":7},"auth:\n  api_keys:\n    - key: \"mk_live_admin\"\n      name: \"admin\"\n      allowed_servers: [\"*\"]  # 访问所有 Server\n    \n    - key: \"mk_live_readonly\"\n      name: \"readonly\"\n      allowed_servers: [\"filesystem\"]  # 只能访问 filesystem\n      tools:\n        allowed: [\"read_file\", \"list_dir\"]  # 只能读取，不能写入\n        denied: [\"write_file\", \"delete_file\"]\n",[1548],{"type":24,"tag":127,"props":1549,"children":1550},{"__ignoreMap":7},[1551,1563,1575,1605,1630,1669,1677,1705,1729,1765,1777,1832],{"type":24,"tag":131,"props":1552,"children":1553},{"class":133,"line":134},[1554,1559],{"type":24,"tag":131,"props":1555,"children":1556},{"style":164},[1557],{"type":30,"value":1558},"auth",{"type":24,"tag":131,"props":1560,"children":1561},{"style":175},[1562],{"type":30,"value":1017},{"type":24,"tag":131,"props":1564,"children":1565},{"class":133,"line":144},[1566,1571],{"type":24,"tag":131,"props":1567,"children":1568},{"style":164},[1569],{"type":30,"value":1570},"  api_keys",{"type":24,"tag":131,"props":1572,"children":1573},{"style":175},[1574],{"type":30,"value":1017},{"type":24,"tag":131,"props":1576,"children":1577},{"class":133,"line":154},[1578,1583,1588,1592,1596,1601],{"type":24,"tag":131,"props":1579,"children":1580},{"style":175},[1581],{"type":30,"value":1582},"    -",{"type":24,"tag":131,"props":1584,"children":1585},{"style":164},[1586],{"type":30,"value":1587}," key",{"type":24,"tag":131,"props":1589,"children":1590},{"style":175},[1591],{"type":30,"value":178},{"type":24,"tag":131,"props":1593,"children":1594},{"style":230},[1595],{"type":30,"value":233},{"type":24,"tag":131,"props":1597,"children":1598},{"style":236},[1599],{"type":30,"value":1600},"mk_live_admin",{"type":24,"tag":131,"props":1602,"children":1603},{"style":230},[1604],{"type":30,"value":1187},{"type":24,"tag":131,"props":1606,"children":1607},{"class":133,"line":186},[1608,1613,1617,1621,1626],{"type":24,"tag":131,"props":1609,"children":1610},{"style":164},[1611],{"type":30,"value":1612},"      name",{"type":24,"tag":131,"props":1614,"children":1615},{"style":175},[1616],{"type":30,"value":178},{"type":24,"tag":131,"props":1618,"children":1619},{"style":230},[1620],{"type":30,"value":233},{"type":24,"tag":131,"props":1622,"children":1623},{"style":236},[1624],{"type":30,"value":1625},"admin",{"type":24,"tag":131,"props":1627,"children":1628},{"style":230},[1629],{"type":30,"value":1187},{"type":24,"tag":131,"props":1631,"children":1632},{"class":133,"line":308},[1633,1638,1642,1646,1650,1655,1659,1664],{"type":24,"tag":131,"props":1634,"children":1635},{"style":164},[1636],{"type":30,"value":1637},"      allowed_servers",{"type":24,"tag":131,"props":1639,"children":1640},{"style":175},[1641],{"type":30,"value":178},{"type":24,"tag":131,"props":1643,"children":1644},{"style":148},[1645],{"type":30,"value":270},{"type":24,"tag":131,"props":1647,"children":1648},{"style":230},[1649],{"type":30,"value":172},{"type":24,"tag":131,"props":1651,"children":1652},{"style":236},[1653],{"type":30,"value":1654},"*",{"type":24,"tag":131,"props":1656,"children":1657},{"style":230},[1658],{"type":30,"value":172},{"type":24,"tag":131,"props":1660,"children":1661},{"style":148},[1662],{"type":30,"value":1663},"]  ",{"type":24,"tag":131,"props":1665,"children":1666},{"style":138},[1667],{"type":30,"value":1668},"# 访问所有 Server\n",{"type":24,"tag":131,"props":1670,"children":1671},{"class":133,"line":419},[1672],{"type":24,"tag":131,"props":1673,"children":1674},{"style":148},[1675],{"type":30,"value":1676},"    \n",{"type":24,"tag":131,"props":1678,"children":1679},{"class":133,"line":428},[1680,1684,1688,1692,1696,1701],{"type":24,"tag":131,"props":1681,"children":1682},{"style":175},[1683],{"type":30,"value":1582},{"type":24,"tag":131,"props":1685,"children":1686},{"style":164},[1687],{"type":30,"value":1587},{"type":24,"tag":131,"props":1689,"children":1690},{"style":175},[1691],{"type":30,"value":178},{"type":24,"tag":131,"props":1693,"children":1694},{"style":230},[1695],{"type":30,"value":233},{"type":24,"tag":131,"props":1697,"children":1698},{"style":236},[1699],{"type":30,"value":1700},"mk_live_readonly",{"type":24,"tag":131,"props":1702,"children":1703},{"style":230},[1704],{"type":30,"value":1187},{"type":24,"tag":131,"props":1706,"children":1707},{"class":133,"line":437},[1708,1712,1716,1720,1725],{"type":24,"tag":131,"props":1709,"children":1710},{"style":164},[1711],{"type":30,"value":1612},{"type":24,"tag":131,"props":1713,"children":1714},{"style":175},[1715],{"type":30,"value":178},{"type":24,"tag":131,"props":1717,"children":1718},{"style":230},[1719],{"type":30,"value":233},{"type":24,"tag":131,"props":1721,"children":1722},{"style":236},[1723],{"type":30,"value":1724},"readonly",{"type":24,"tag":131,"props":1726,"children":1727},{"style":230},[1728],{"type":30,"value":1187},{"type":24,"tag":131,"props":1730,"children":1731},{"class":133,"line":446},[1732,1736,1740,1744,1748,1752,1756,1760],{"type":24,"tag":131,"props":1733,"children":1734},{"style":164},[1735],{"type":30,"value":1637},{"type":24,"tag":131,"props":1737,"children":1738},{"style":175},[1739],{"type":30,"value":178},{"type":24,"tag":131,"props":1741,"children":1742},{"style":148},[1743],{"type":30,"value":270},{"type":24,"tag":131,"props":1745,"children":1746},{"style":230},[1747],{"type":30,"value":172},{"type":24,"tag":131,"props":1749,"children":1750},{"style":236},[1751],{"type":30,"value":197},{"type":24,"tag":131,"props":1753,"children":1754},{"style":230},[1755],{"type":30,"value":172},{"type":24,"tag":131,"props":1757,"children":1758},{"style":148},[1759],{"type":30,"value":1663},{"type":24,"tag":131,"props":1761,"children":1762},{"style":138},[1763],{"type":30,"value":1764},"# 只能访问 filesystem\n",{"type":24,"tag":131,"props":1766,"children":1767},{"class":133,"line":455},[1768,1773],{"type":24,"tag":131,"props":1769,"children":1770},{"style":164},[1771],{"type":30,"value":1772},"      tools",{"type":24,"tag":131,"props":1774,"children":1775},{"style":175},[1776],{"type":30,"value":1017},{"type":24,"tag":131,"props":1778,"children":1779},{"class":133,"line":463},[1780,1785,1789,1793,1797,1802,1806,1810,1814,1819,1823,1827],{"type":24,"tag":131,"props":1781,"children":1782},{"style":164},[1783],{"type":30,"value":1784},"        allowed",{"type":24,"tag":131,"props":1786,"children":1787},{"style":175},[1788],{"type":30,"value":178},{"type":24,"tag":131,"props":1790,"children":1791},{"style":148},[1792],{"type":30,"value":270},{"type":24,"tag":131,"props":1794,"children":1795},{"style":230},[1796],{"type":30,"value":172},{"type":24,"tag":131,"props":1798,"children":1799},{"style":236},[1800],{"type":30,"value":1801},"read_file",{"type":24,"tag":131,"props":1803,"children":1804},{"style":230},[1805],{"type":30,"value":172},{"type":24,"tag":131,"props":1807,"children":1808},{"style":148},[1809],{"type":30,"value":248},{"type":24,"tag":131,"props":1811,"children":1812},{"style":230},[1813],{"type":30,"value":172},{"type":24,"tag":131,"props":1815,"children":1816},{"style":236},[1817],{"type":30,"value":1818},"list_dir",{"type":24,"tag":131,"props":1820,"children":1821},{"style":230},[1822],{"type":30,"value":172},{"type":24,"tag":131,"props":1824,"children":1825},{"style":148},[1826],{"type":30,"value":1663},{"type":24,"tag":131,"props":1828,"children":1829},{"style":138},[1830],{"type":30,"value":1831},"# 只能读取，不能写入\n",{"type":24,"tag":131,"props":1833,"children":1834},{"class":133,"line":487},[1835,1840,1844,1848,1852,1857,1861,1865,1869,1874,1878],{"type":24,"tag":131,"props":1836,"children":1837},{"style":164},[1838],{"type":30,"value":1839},"        denied",{"type":24,"tag":131,"props":1841,"children":1842},{"style":175},[1843],{"type":30,"value":178},{"type":24,"tag":131,"props":1845,"children":1846},{"style":148},[1847],{"type":30,"value":270},{"type":24,"tag":131,"props":1849,"children":1850},{"style":230},[1851],{"type":30,"value":172},{"type":24,"tag":131,"props":1853,"children":1854},{"style":236},[1855],{"type":30,"value":1856},"write_file",{"type":24,"tag":131,"props":1858,"children":1859},{"style":230},[1860],{"type":30,"value":172},{"type":24,"tag":131,"props":1862,"children":1863},{"style":148},[1864],{"type":30,"value":248},{"type":24,"tag":131,"props":1866,"children":1867},{"style":230},[1868],{"type":30,"value":172},{"type":24,"tag":131,"props":1870,"children":1871},{"style":236},[1872],{"type":30,"value":1873},"delete_file",{"type":24,"tag":131,"props":1875,"children":1876},{"style":230},[1877],{"type":30,"value":172},{"type":24,"tag":131,"props":1879,"children":1880},{"style":148},[1881],{"type":30,"value":1112},{"type":24,"tag":36,"props":1883,"children":1884},{},[1885],{"type":24,"tag":62,"props":1886,"children":1887},{},[1888],{"type":30,"value":1889},"效果：",{"type":24,"tag":54,"props":1891,"children":1892},{},[1893,1898,1903],{"type":24,"tag":58,"props":1894,"children":1895},{},[1896],{"type":30,"value":1897},"Admin 可以调用所有工具",{"type":24,"tag":58,"props":1899,"children":1900},{},[1901],{"type":30,"value":1902},"Readonly 用户只能访问 filesystem 的读取工具",{"type":24,"tag":58,"props":1904,"children":1905},{},[1906],{"type":30,"value":1907},"危险操作被自动拦截",{"type":24,"tag":982,"props":1909,"children":1911},{"id":1910},"_3-限流保护防止滥用",[1912],{"type":30,"value":1913},"3. 限流保护，防止滥用",{"type":24,"tag":120,"props":1915,"children":1917},{"code":1916,"language":991,"meta":7,"className":992,"style":7},"rate_limit:\n  default:\n    requests_per_minute: 60\n    requests_per_day: 10000\n  \n  per_key:\n    \"mk_live_admin\":\n      requests_per_minute: 200  # VIP 用户更高限额\n",[1918],{"type":24,"tag":127,"props":1919,"children":1920},{"__ignoreMap":7},[1921,1933,1945,1962,1979,1986,1998,2017],{"type":24,"tag":131,"props":1922,"children":1923},{"class":133,"line":134},[1924,1929],{"type":24,"tag":131,"props":1925,"children":1926},{"style":164},[1927],{"type":30,"value":1928},"rate_limit",{"type":24,"tag":131,"props":1930,"children":1931},{"style":175},[1932],{"type":30,"value":1017},{"type":24,"tag":131,"props":1934,"children":1935},{"class":133,"line":144},[1936,1941],{"type":24,"tag":131,"props":1937,"children":1938},{"style":164},[1939],{"type":30,"value":1940},"  default",{"type":24,"tag":131,"props":1942,"children":1943},{"style":175},[1944],{"type":30,"value":1017},{"type":24,"tag":131,"props":1946,"children":1947},{"class":133,"line":154},[1948,1953,1957],{"type":24,"tag":131,"props":1949,"children":1950},{"style":164},[1951],{"type":30,"value":1952},"    requests_per_minute",{"type":24,"tag":131,"props":1954,"children":1955},{"style":175},[1956],{"type":30,"value":178},{"type":24,"tag":131,"props":1958,"children":1959},{"style":1304},[1960],{"type":30,"value":1961}," 60\n",{"type":24,"tag":131,"props":1963,"children":1964},{"class":133,"line":186},[1965,1970,1974],{"type":24,"tag":131,"props":1966,"children":1967},{"style":164},[1968],{"type":30,"value":1969},"    requests_per_day",{"type":24,"tag":131,"props":1971,"children":1972},{"style":175},[1973],{"type":30,"value":178},{"type":24,"tag":131,"props":1975,"children":1976},{"style":1304},[1977],{"type":30,"value":1978}," 10000\n",{"type":24,"tag":131,"props":1980,"children":1981},{"class":133,"line":308},[1982],{"type":24,"tag":131,"props":1983,"children":1984},{"style":148},[1985],{"type":30,"value":1120},{"type":24,"tag":131,"props":1987,"children":1988},{"class":133,"line":419},[1989,1994],{"type":24,"tag":131,"props":1990,"children":1991},{"style":164},[1992],{"type":30,"value":1993},"  per_key",{"type":24,"tag":131,"props":1995,"children":1996},{"style":175},[1997],{"type":30,"value":1017},{"type":24,"tag":131,"props":1999,"children":2000},{"class":133,"line":428},[2001,2005,2009,2013],{"type":24,"tag":131,"props":2002,"children":2003},{"style":230},[2004],{"type":30,"value":192},{"type":24,"tag":131,"props":2006,"children":2007},{"style":236},[2008],{"type":30,"value":1600},{"type":24,"tag":131,"props":2010,"children":2011},{"style":230},[2012],{"type":30,"value":172},{"type":24,"tag":131,"props":2014,"children":2015},{"style":175},[2016],{"type":30,"value":1017},{"type":24,"tag":131,"props":2018,"children":2019},{"class":133,"line":437},[2020,2025,2029,2034],{"type":24,"tag":131,"props":2021,"children":2022},{"style":164},[2023],{"type":30,"value":2024},"      requests_per_minute",{"type":24,"tag":131,"props":2026,"children":2027},{"style":175},[2028],{"type":30,"value":178},{"type":24,"tag":131,"props":2030,"children":2031},{"style":1304},[2032],{"type":30,"value":2033}," 200",{"type":24,"tag":131,"props":2035,"children":2036},{"style":138},[2037],{"type":30,"value":2038},"  # VIP 用户更高限额\n",{"type":24,"tag":36,"props":2040,"children":2041},{},[2042],{"type":24,"tag":62,"props":2043,"children":2044},{},[2045],{"type":30,"value":1889},{"type":24,"tag":54,"props":2047,"children":2048},{},[2049,2054,2059],{"type":24,"tag":58,"props":2050,"children":2051},{},[2052],{"type":30,"value":2053},"防止单个 Agent 过度调用",{"type":24,"tag":58,"props":2055,"children":2056},{},[2057],{"type":30,"value":2058},"保护后端 MCP Server 不被压垮",{"type":24,"tag":58,"props":2060,"children":2061},{},[2062],{"type":30,"value":2063},"超限自动返回 429 + Retry-After",{"type":24,"tag":982,"props":2065,"children":2067},{"id":2066},"_4-完整的可观测性",[2068],{"type":30,"value":2069},"4. 完整的可观测性",{"type":24,"tag":36,"props":2071,"children":2072},{},[2073],{"type":30,"value":2074},"结构化日志记录每次调用：",{"type":24,"tag":120,"props":2076,"children":2078},{"code":2077,"language":123,"meta":7,"className":124,"style":7},"{\n  \"timestamp\": \"2026-06-22T10:30:00Z\",\n  \"client\": \"claude-code\",\n  \"method\": \"tools/call\",\n  \"tool\": \"filesystem.read_file\",\n  \"server\": \"filesystem\",\n  \"duration_ms\": 45,\n  \"status\": \"success\",\n  \"api_key\": \"mk_live_xxx\"\n}\n",[2079],{"type":24,"tag":127,"props":2080,"children":2081},{"__ignoreMap":7},[2082,2089,2126,2163,2200,2237,2273,2302,2339,2372],{"type":24,"tag":131,"props":2083,"children":2084},{"class":133,"line":134},[2085],{"type":24,"tag":131,"props":2086,"children":2087},{"style":148},[2088],{"type":30,"value":151},{"type":24,"tag":131,"props":2090,"children":2091},{"class":133,"line":144},[2092,2096,2101,2105,2109,2113,2118,2122],{"type":24,"tag":131,"props":2093,"children":2094},{"style":158},[2095],{"type":30,"value":161},{"type":24,"tag":131,"props":2097,"children":2098},{"style":164},[2099],{"type":30,"value":2100},"timestamp",{"type":24,"tag":131,"props":2102,"children":2103},{"style":158},[2104],{"type":30,"value":172},{"type":24,"tag":131,"props":2106,"children":2107},{"style":175},[2108],{"type":30,"value":178},{"type":24,"tag":131,"props":2110,"children":2111},{"style":230},[2112],{"type":30,"value":233},{"type":24,"tag":131,"props":2114,"children":2115},{"style":236},[2116],{"type":30,"value":2117},"2026-06-22T10:30:00Z",{"type":24,"tag":131,"props":2119,"children":2120},{"style":230},[2121],{"type":30,"value":172},{"type":24,"tag":131,"props":2123,"children":2124},{"style":148},[2125],{"type":30,"value":1449},{"type":24,"tag":131,"props":2127,"children":2128},{"class":133,"line":154},[2129,2133,2138,2142,2146,2150,2155,2159],{"type":24,"tag":131,"props":2130,"children":2131},{"style":158},[2132],{"type":30,"value":161},{"type":24,"tag":131,"props":2134,"children":2135},{"style":164},[2136],{"type":30,"value":2137},"client",{"type":24,"tag":131,"props":2139,"children":2140},{"style":158},[2141],{"type":30,"value":172},{"type":24,"tag":131,"props":2143,"children":2144},{"style":175},[2145],{"type":30,"value":178},{"type":24,"tag":131,"props":2147,"children":2148},{"style":230},[2149],{"type":30,"value":233},{"type":24,"tag":131,"props":2151,"children":2152},{"style":236},[2153],{"type":30,"value":2154},"claude-code",{"type":24,"tag":131,"props":2156,"children":2157},{"style":230},[2158],{"type":30,"value":172},{"type":24,"tag":131,"props":2160,"children":2161},{"style":148},[2162],{"type":30,"value":1449},{"type":24,"tag":131,"props":2164,"children":2165},{"class":133,"line":186},[2166,2170,2175,2179,2183,2187,2192,2196],{"type":24,"tag":131,"props":2167,"children":2168},{"style":158},[2169],{"type":30,"value":161},{"type":24,"tag":131,"props":2171,"children":2172},{"style":164},[2173],{"type":30,"value":2174},"method",{"type":24,"tag":131,"props":2176,"children":2177},{"style":158},[2178],{"type":30,"value":172},{"type":24,"tag":131,"props":2180,"children":2181},{"style":175},[2182],{"type":30,"value":178},{"type":24,"tag":131,"props":2184,"children":2185},{"style":230},[2186],{"type":30,"value":233},{"type":24,"tag":131,"props":2188,"children":2189},{"style":236},[2190],{"type":30,"value":2191},"tools/call",{"type":24,"tag":131,"props":2193,"children":2194},{"style":230},[2195],{"type":30,"value":172},{"type":24,"tag":131,"props":2197,"children":2198},{"style":148},[2199],{"type":30,"value":1449},{"type":24,"tag":131,"props":2201,"children":2202},{"class":133,"line":308},[2203,2207,2212,2216,2220,2224,2229,2233],{"type":24,"tag":131,"props":2204,"children":2205},{"style":158},[2206],{"type":30,"value":161},{"type":24,"tag":131,"props":2208,"children":2209},{"style":164},[2210],{"type":30,"value":2211},"tool",{"type":24,"tag":131,"props":2213,"children":2214},{"style":158},[2215],{"type":30,"value":172},{"type":24,"tag":131,"props":2217,"children":2218},{"style":175},[2219],{"type":30,"value":178},{"type":24,"tag":131,"props":2221,"children":2222},{"style":230},[2223],{"type":30,"value":233},{"type":24,"tag":131,"props":2225,"children":2226},{"style":236},[2227],{"type":30,"value":2228},"filesystem.read_file",{"type":24,"tag":131,"props":2230,"children":2231},{"style":230},[2232],{"type":30,"value":172},{"type":24,"tag":131,"props":2234,"children":2235},{"style":148},[2236],{"type":30,"value":1449},{"type":24,"tag":131,"props":2238,"children":2239},{"class":133,"line":419},[2240,2244,2249,2253,2257,2261,2265,2269],{"type":24,"tag":131,"props":2241,"children":2242},{"style":158},[2243],{"type":30,"value":161},{"type":24,"tag":131,"props":2245,"children":2246},{"style":164},[2247],{"type":30,"value":2248},"server",{"type":24,"tag":131,"props":2250,"children":2251},{"style":158},[2252],{"type":30,"value":172},{"type":24,"tag":131,"props":2254,"children":2255},{"style":175},[2256],{"type":30,"value":178},{"type":24,"tag":131,"props":2258,"children":2259},{"style":230},[2260],{"type":30,"value":233},{"type":24,"tag":131,"props":2262,"children":2263},{"style":236},[2264],{"type":30,"value":197},{"type":24,"tag":131,"props":2266,"children":2267},{"style":230},[2268],{"type":30,"value":172},{"type":24,"tag":131,"props":2270,"children":2271},{"style":148},[2272],{"type":30,"value":1449},{"type":24,"tag":131,"props":2274,"children":2275},{"class":133,"line":428},[2276,2280,2285,2289,2293,2298],{"type":24,"tag":131,"props":2277,"children":2278},{"style":158},[2279],{"type":30,"value":161},{"type":24,"tag":131,"props":2281,"children":2282},{"style":164},[2283],{"type":30,"value":2284},"duration_ms",{"type":24,"tag":131,"props":2286,"children":2287},{"style":158},[2288],{"type":30,"value":172},{"type":24,"tag":131,"props":2290,"children":2291},{"style":175},[2292],{"type":30,"value":178},{"type":24,"tag":131,"props":2294,"children":2295},{"style":1304},[2296],{"type":30,"value":2297}," 45",{"type":24,"tag":131,"props":2299,"children":2300},{"style":148},[2301],{"type":30,"value":1449},{"type":24,"tag":131,"props":2303,"children":2304},{"class":133,"line":437},[2305,2309,2314,2318,2322,2326,2331,2335],{"type":24,"tag":131,"props":2306,"children":2307},{"style":158},[2308],{"type":30,"value":161},{"type":24,"tag":131,"props":2310,"children":2311},{"style":164},[2312],{"type":30,"value":2313},"status",{"type":24,"tag":131,"props":2315,"children":2316},{"style":158},[2317],{"type":30,"value":172},{"type":24,"tag":131,"props":2319,"children":2320},{"style":175},[2321],{"type":30,"value":178},{"type":24,"tag":131,"props":2323,"children":2324},{"style":230},[2325],{"type":30,"value":233},{"type":24,"tag":131,"props":2327,"children":2328},{"style":236},[2329],{"type":30,"value":2330},"success",{"type":24,"tag":131,"props":2332,"children":2333},{"style":230},[2334],{"type":30,"value":172},{"type":24,"tag":131,"props":2336,"children":2337},{"style":148},[2338],{"type":30,"value":1449},{"type":24,"tag":131,"props":2340,"children":2341},{"class":133,"line":446},[2342,2346,2351,2355,2359,2363,2368],{"type":24,"tag":131,"props":2343,"children":2344},{"style":158},[2345],{"type":30,"value":161},{"type":24,"tag":131,"props":2347,"children":2348},{"style":164},[2349],{"type":30,"value":2350},"api_key",{"type":24,"tag":131,"props":2352,"children":2353},{"style":158},[2354],{"type":30,"value":172},{"type":24,"tag":131,"props":2356,"children":2357},{"style":175},[2358],{"type":30,"value":178},{"type":24,"tag":131,"props":2360,"children":2361},{"style":230},[2362],{"type":30,"value":233},{"type":24,"tag":131,"props":2364,"children":2365},{"style":236},[2366],{"type":30,"value":2367},"mk_live_xxx",{"type":24,"tag":131,"props":2369,"children":2370},{"style":230},[2371],{"type":30,"value":1187},{"type":24,"tag":131,"props":2373,"children":2374},{"class":133,"line":455},[2375],{"type":24,"tag":131,"props":2376,"children":2377},{"style":148},[2378],{"type":30,"value":434},{"type":24,"tag":36,"props":2380,"children":2381},{},[2382],{"type":24,"tag":62,"props":2383,"children":2384},{},[2385],{"type":30,"value":2386},"你可以回答：",{"type":24,"tag":54,"props":2388,"children":2389},{},[2390,2395,2400],{"type":24,"tag":58,"props":2391,"children":2392},{},[2393],{"type":30,"value":2394},"哪些工具被调用最多？",{"type":24,"tag":58,"props":2396,"children":2397},{},[2398],{"type":30,"value":2399},"哪些 Agent 最活跃？",{"type":24,"tag":58,"props":2401,"children":2402},{},[2403],{"type":30,"value":2404},"哪些调用失败了？为什么？",{"type":24,"tag":42,"props":2406,"children":2408},{"id":2407},"实际使用场景",[2409],{"type":30,"value":2407},{"type":24,"tag":108,"props":2411,"children":2413},{"id":2412},"场景-1开发团队共享-mcp-工具",[2414],{"type":30,"value":2415},"场景 1：开发团队共享 MCP 工具",{"type":24,"tag":36,"props":2417,"children":2418},{},[2419,2423],{"type":24,"tag":62,"props":2420,"children":2421},{},[2422],{"type":30,"value":726},{"type":30,"value":2424}," 5 个开发者，每人配置自己的 MCP Server，配置不一致导致\"我这里能用，你那里不行\"。",{"type":24,"tag":36,"props":2426,"children":2427},{},[2428],{"type":24,"tag":62,"props":2429,"children":2430},{},[2431],{"type":30,"value":2432},"解决方案：",{"type":24,"tag":2434,"props":2435,"children":2436},"ol",{},[2437,2442,2447,2452],{"type":24,"tag":58,"props":2438,"children":2439},{},[2440],{"type":30,"value":2441},"运维部署 MCPForge 网关",{"type":24,"tag":58,"props":2443,"children":2444},{},[2445],{"type":30,"value":2446},"配置团队共享的 MCP Server",{"type":24,"tag":58,"props":2448,"children":2449},{},[2450],{"type":30,"value":2451},"为每个开发者生成 API Key",{"type":24,"tag":58,"props":2453,"children":2454},{},[2455],{"type":30,"value":2456},"所有人连接到同一个网关",{"type":24,"tag":36,"props":2458,"children":2459},{},[2460],{"type":24,"tag":62,"props":2461,"children":2462},{},[2463],{"type":30,"value":1889},{"type":24,"tag":54,"props":2465,"children":2466},{},[2467,2472,2477],{"type":24,"tag":58,"props":2468,"children":2469},{},[2470],{"type":30,"value":2471},"配置统一，问题减少",{"type":24,"tag":58,"props":2473,"children":2474},{},[2475],{"type":30,"value":2476},"新成员入职，只需一个 API Key",{"type":24,"tag":58,"props":2478,"children":2479},{},[2480],{"type":30,"value":2481},"工具变更，只需更新网关配置",{"type":24,"tag":108,"props":2483,"children":2485},{"id":2484},"场景-2生产环境的-ai-agent-治理",[2486],{"type":30,"value":2487},"场景 2：生产环境的 AI Agent 治理",{"type":24,"tag":36,"props":2489,"children":2490},{},[2491,2495],{"type":24,"tag":62,"props":2492,"children":2493},{},[2494],{"type":30,"value":726},{"type":30,"value":2496}," 生产环境运行着 10 个 AI Agent，需要严格控制它们的工具访问权限。",{"type":24,"tag":36,"props":2498,"children":2499},{},[2500],{"type":24,"tag":62,"props":2501,"children":2502},{},[2503],{"type":30,"value":2432},{"type":24,"tag":120,"props":2505,"children":2507},{"code":2506,"language":991,"meta":7,"className":992,"style":7},"auth:\n  api_keys:\n    # 客服 Agent：只能查询，不能修改\n    - key: \"mk_live_customer_service\"\n      allowed_servers: [\"database\", \"crm\"]\n      tools:\n        allowed: [\"query\", \"search\"]\n        denied: [\"update\", \"delete\", \"execute\"]\n    \n    # 运维 Agent：可以执行命令，但限制范围\n    - key: \"mk_live_ops\"\n      allowed_servers: [\"filesystem\", \"shell\"]\n      tools:\n        denied: [\"rm -rf\", \"DROP TABLE\"]  # 危险命令黑名单\n",[2508],{"type":24,"tag":127,"props":2509,"children":2510},{"__ignoreMap":7},[2511,2522,2533,2541,2569,2617,2628,2677,2743,2750,2758,2786,2834,2845],{"type":24,"tag":131,"props":2512,"children":2513},{"class":133,"line":134},[2514,2518],{"type":24,"tag":131,"props":2515,"children":2516},{"style":164},[2517],{"type":30,"value":1558},{"type":24,"tag":131,"props":2519,"children":2520},{"style":175},[2521],{"type":30,"value":1017},{"type":24,"tag":131,"props":2523,"children":2524},{"class":133,"line":144},[2525,2529],{"type":24,"tag":131,"props":2526,"children":2527},{"style":164},[2528],{"type":30,"value":1570},{"type":24,"tag":131,"props":2530,"children":2531},{"style":175},[2532],{"type":30,"value":1017},{"type":24,"tag":131,"props":2534,"children":2535},{"class":133,"line":154},[2536],{"type":24,"tag":131,"props":2537,"children":2538},{"style":138},[2539],{"type":30,"value":2540},"    # 客服 Agent：只能查询，不能修改\n",{"type":24,"tag":131,"props":2542,"children":2543},{"class":133,"line":186},[2544,2548,2552,2556,2560,2565],{"type":24,"tag":131,"props":2545,"children":2546},{"style":175},[2547],{"type":30,"value":1582},{"type":24,"tag":131,"props":2549,"children":2550},{"style":164},[2551],{"type":30,"value":1587},{"type":24,"tag":131,"props":2553,"children":2554},{"style":175},[2555],{"type":30,"value":178},{"type":24,"tag":131,"props":2557,"children":2558},{"style":230},[2559],{"type":30,"value":233},{"type":24,"tag":131,"props":2561,"children":2562},{"style":236},[2563],{"type":30,"value":2564},"mk_live_customer_service",{"type":24,"tag":131,"props":2566,"children":2567},{"style":230},[2568],{"type":30,"value":1187},{"type":24,"tag":131,"props":2570,"children":2571},{"class":133,"line":308},[2572,2576,2580,2584,2588,2592,2596,2600,2604,2609,2613],{"type":24,"tag":131,"props":2573,"children":2574},{"style":164},[2575],{"type":30,"value":1637},{"type":24,"tag":131,"props":2577,"children":2578},{"style":175},[2579],{"type":30,"value":178},{"type":24,"tag":131,"props":2581,"children":2582},{"style":148},[2583],{"type":30,"value":270},{"type":24,"tag":131,"props":2585,"children":2586},{"style":230},[2587],{"type":30,"value":172},{"type":24,"tag":131,"props":2589,"children":2590},{"style":236},[2591],{"type":30,"value":605},{"type":24,"tag":131,"props":2593,"children":2594},{"style":230},[2595],{"type":30,"value":172},{"type":24,"tag":131,"props":2597,"children":2598},{"style":148},[2599],{"type":30,"value":248},{"type":24,"tag":131,"props":2601,"children":2602},{"style":230},[2603],{"type":30,"value":172},{"type":24,"tag":131,"props":2605,"children":2606},{"style":236},[2607],{"type":30,"value":2608},"crm",{"type":24,"tag":131,"props":2610,"children":2611},{"style":230},[2612],{"type":30,"value":172},{"type":24,"tag":131,"props":2614,"children":2615},{"style":148},[2616],{"type":30,"value":1112},{"type":24,"tag":131,"props":2618,"children":2619},{"class":133,"line":419},[2620,2624],{"type":24,"tag":131,"props":2621,"children":2622},{"style":164},[2623],{"type":30,"value":1772},{"type":24,"tag":131,"props":2625,"children":2626},{"style":175},[2627],{"type":30,"value":1017},{"type":24,"tag":131,"props":2629,"children":2630},{"class":133,"line":428},[2631,2635,2639,2643,2647,2652,2656,2660,2664,2669,2673],{"type":24,"tag":131,"props":2632,"children":2633},{"style":164},[2634],{"type":30,"value":1784},{"type":24,"tag":131,"props":2636,"children":2637},{"style":175},[2638],{"type":30,"value":178},{"type":24,"tag":131,"props":2640,"children":2641},{"style":148},[2642],{"type":30,"value":270},{"type":24,"tag":131,"props":2644,"children":2645},{"style":230},[2646],{"type":30,"value":172},{"type":24,"tag":131,"props":2648,"children":2649},{"style":236},[2650],{"type":30,"value":2651},"query",{"type":24,"tag":131,"props":2653,"children":2654},{"style":230},[2655],{"type":30,"value":172},{"type":24,"tag":131,"props":2657,"children":2658},{"style":148},[2659],{"type":30,"value":248},{"type":24,"tag":131,"props":2661,"children":2662},{"style":230},[2663],{"type":30,"value":172},{"type":24,"tag":131,"props":2665,"children":2666},{"style":236},[2667],{"type":30,"value":2668},"search",{"type":24,"tag":131,"props":2670,"children":2671},{"style":230},[2672],{"type":30,"value":172},{"type":24,"tag":131,"props":2674,"children":2675},{"style":148},[2676],{"type":30,"value":1112},{"type":24,"tag":131,"props":2678,"children":2679},{"class":133,"line":437},[2680,2684,2688,2692,2696,2701,2705,2709,2713,2718,2722,2726,2730,2735,2739],{"type":24,"tag":131,"props":2681,"children":2682},{"style":164},[2683],{"type":30,"value":1839},{"type":24,"tag":131,"props":2685,"children":2686},{"style":175},[2687],{"type":30,"value":178},{"type":24,"tag":131,"props":2689,"children":2690},{"style":148},[2691],{"type":30,"value":270},{"type":24,"tag":131,"props":2693,"children":2694},{"style":230},[2695],{"type":30,"value":172},{"type":24,"tag":131,"props":2697,"children":2698},{"style":236},[2699],{"type":30,"value":2700},"update",{"type":24,"tag":131,"props":2702,"children":2703},{"style":230},[2704],{"type":30,"value":172},{"type":24,"tag":131,"props":2706,"children":2707},{"style":148},[2708],{"type":30,"value":248},{"type":24,"tag":131,"props":2710,"children":2711},{"style":230},[2712],{"type":30,"value":172},{"type":24,"tag":131,"props":2714,"children":2715},{"style":236},[2716],{"type":30,"value":2717},"delete",{"type":24,"tag":131,"props":2719,"children":2720},{"style":230},[2721],{"type":30,"value":172},{"type":24,"tag":131,"props":2723,"children":2724},{"style":148},[2725],{"type":30,"value":248},{"type":24,"tag":131,"props":2727,"children":2728},{"style":230},[2729],{"type":30,"value":172},{"type":24,"tag":131,"props":2731,"children":2732},{"style":236},[2733],{"type":30,"value":2734},"execute",{"type":24,"tag":131,"props":2736,"children":2737},{"style":230},[2738],{"type":30,"value":172},{"type":24,"tag":131,"props":2740,"children":2741},{"style":148},[2742],{"type":30,"value":1112},{"type":24,"tag":131,"props":2744,"children":2745},{"class":133,"line":446},[2746],{"type":24,"tag":131,"props":2747,"children":2748},{"style":148},[2749],{"type":30,"value":1676},{"type":24,"tag":131,"props":2751,"children":2752},{"class":133,"line":455},[2753],{"type":24,"tag":131,"props":2754,"children":2755},{"style":138},[2756],{"type":30,"value":2757},"    # 运维 Agent：可以执行命令，但限制范围\n",{"type":24,"tag":131,"props":2759,"children":2760},{"class":133,"line":463},[2761,2765,2769,2773,2777,2782],{"type":24,"tag":131,"props":2762,"children":2763},{"style":175},[2764],{"type":30,"value":1582},{"type":24,"tag":131,"props":2766,"children":2767},{"style":164},[2768],{"type":30,"value":1587},{"type":24,"tag":131,"props":2770,"children":2771},{"style":175},[2772],{"type":30,"value":178},{"type":24,"tag":131,"props":2774,"children":2775},{"style":230},[2776],{"type":30,"value":233},{"type":24,"tag":131,"props":2778,"children":2779},{"style":236},[2780],{"type":30,"value":2781},"mk_live_ops",{"type":24,"tag":131,"props":2783,"children":2784},{"style":230},[2785],{"type":30,"value":1187},{"type":24,"tag":131,"props":2787,"children":2788},{"class":133,"line":487},[2789,2793,2797,2801,2805,2809,2813,2817,2821,2826,2830],{"type":24,"tag":131,"props":2790,"children":2791},{"style":164},[2792],{"type":30,"value":1637},{"type":24,"tag":131,"props":2794,"children":2795},{"style":175},[2796],{"type":30,"value":178},{"type":24,"tag":131,"props":2798,"children":2799},{"style":148},[2800],{"type":30,"value":270},{"type":24,"tag":131,"props":2802,"children":2803},{"style":230},[2804],{"type":30,"value":172},{"type":24,"tag":131,"props":2806,"children":2807},{"style":236},[2808],{"type":30,"value":197},{"type":24,"tag":131,"props":2810,"children":2811},{"style":230},[2812],{"type":30,"value":172},{"type":24,"tag":131,"props":2814,"children":2815},{"style":148},[2816],{"type":30,"value":248},{"type":24,"tag":131,"props":2818,"children":2819},{"style":230},[2820],{"type":30,"value":172},{"type":24,"tag":131,"props":2822,"children":2823},{"style":236},[2824],{"type":30,"value":2825},"shell",{"type":24,"tag":131,"props":2827,"children":2828},{"style":230},[2829],{"type":30,"value":172},{"type":24,"tag":131,"props":2831,"children":2832},{"style":148},[2833],{"type":30,"value":1112},{"type":24,"tag":131,"props":2835,"children":2836},{"class":133,"line":595},[2837,2841],{"type":24,"tag":131,"props":2838,"children":2839},{"style":164},[2840],{"type":30,"value":1772},{"type":24,"tag":131,"props":2842,"children":2843},{"style":175},[2844],{"type":30,"value":1017},{"type":24,"tag":131,"props":2846,"children":2847},{"class":133,"line":705},[2848,2852,2856,2860,2864,2869,2873,2877,2881,2886,2890,2894],{"type":24,"tag":131,"props":2849,"children":2850},{"style":164},[2851],{"type":30,"value":1839},{"type":24,"tag":131,"props":2853,"children":2854},{"style":175},[2855],{"type":30,"value":178},{"type":24,"tag":131,"props":2857,"children":2858},{"style":148},[2859],{"type":30,"value":270},{"type":24,"tag":131,"props":2861,"children":2862},{"style":230},[2863],{"type":30,"value":172},{"type":24,"tag":131,"props":2865,"children":2866},{"style":236},[2867],{"type":30,"value":2868},"rm -rf",{"type":24,"tag":131,"props":2870,"children":2871},{"style":230},[2872],{"type":30,"value":172},{"type":24,"tag":131,"props":2874,"children":2875},{"style":148},[2876],{"type":30,"value":248},{"type":24,"tag":131,"props":2878,"children":2879},{"style":230},[2880],{"type":30,"value":172},{"type":24,"tag":131,"props":2882,"children":2883},{"style":236},[2884],{"type":30,"value":2885},"DROP TABLE",{"type":24,"tag":131,"props":2887,"children":2888},{"style":230},[2889],{"type":30,"value":172},{"type":24,"tag":131,"props":2891,"children":2892},{"style":148},[2893],{"type":30,"value":1663},{"type":24,"tag":131,"props":2895,"children":2896},{"style":138},[2897],{"type":30,"value":2898},"# 危险命令黑名单\n",{"type":24,"tag":36,"props":2900,"children":2901},{},[2902],{"type":24,"tag":62,"props":2903,"children":2904},{},[2905],{"type":30,"value":1889},{"type":24,"tag":54,"props":2907,"children":2908},{},[2909,2914,2919],{"type":24,"tag":58,"props":2910,"children":2911},{},[2912],{"type":30,"value":2913},"客服 Agent 无法删除数据",{"type":24,"tag":58,"props":2915,"children":2916},{},[2917],{"type":30,"value":2918},"运维 Agent 无法执行危险命令",{"type":24,"tag":58,"props":2920,"children":2921},{},[2922],{"type":30,"value":2923},"所有调用都有日志，可追溯",{"type":24,"tag":108,"props":2925,"children":2927},{"id":2926},"场景-3多租户-saas-平台",[2928],{"type":30,"value":2929},"场景 3：多租户 SaaS 平台",{"type":24,"tag":36,"props":2931,"children":2932},{},[2933,2937],{"type":24,"tag":62,"props":2934,"children":2935},{},[2936],{"type":30,"value":726},{"type":30,"value":2938}," 为多个客户提供 AI 能力，需要隔离他们的工具和权限。",{"type":24,"tag":36,"props":2940,"children":2941},{},[2942],{"type":24,"tag":62,"props":2943,"children":2944},{},[2945],{"type":30,"value":2432},{"type":24,"tag":54,"props":2947,"children":2948},{},[2949,2954,2959],{"type":24,"tag":58,"props":2950,"children":2951},{},[2952],{"type":30,"value":2953},"为每个客户生成独立的 API Key",{"type":24,"tag":58,"props":2955,"children":2956},{},[2957],{"type":30,"value":2958},"配置不同的 Server 访问权限",{"type":24,"tag":58,"props":2960,"children":2961},{},[2962],{"type":30,"value":2963},"按客户设置限流配额",{"type":24,"tag":36,"props":2965,"children":2966},{},[2967],{"type":24,"tag":62,"props":2968,"children":2969},{},[2970],{"type":30,"value":1889},{"type":24,"tag":54,"props":2972,"children":2973},{},[2974,2979,2984],{"type":24,"tag":58,"props":2975,"children":2976},{},[2977],{"type":30,"value":2978},"客户 A 无法访问客户 B 的工具",{"type":24,"tag":58,"props":2980,"children":2981},{},[2982],{"type":30,"value":2983},"每个客户的调用量独立统计",{"type":24,"tag":58,"props":2985,"children":2986},{},[2987],{"type":30,"value":2988},"防止单个客户占用过多资源",{"type":24,"tag":42,"props":2990,"children":2992},{"id":2991},"技术亮点",[2993],{"type":30,"value":2991},{"type":24,"tag":108,"props":2995,"children":2997},{"id":2996},"_1-零依赖部署",[2998],{"type":30,"value":2999},"1. 零依赖部署",{"type":24,"tag":120,"props":3001,"children":3003},{"code":3002,"language":1316,"meta":7,"className":1317,"style":7},"pip install mcpforge\nmcpforge serve\n",[3004],{"type":24,"tag":127,"props":3005,"children":3006},{"__ignoreMap":7},[3007,3025],{"type":24,"tag":131,"props":3008,"children":3009},{"class":133,"line":134},[3010,3015,3020],{"type":24,"tag":131,"props":3011,"children":3012},{"style":1327},[3013],{"type":30,"value":3014},"pip",{"type":24,"tag":131,"props":3016,"children":3017},{"style":236},[3018],{"type":30,"value":3019}," install",{"type":24,"tag":131,"props":3021,"children":3022},{"style":236},[3023],{"type":30,"value":3024}," mcpforge\n",{"type":24,"tag":131,"props":3026,"children":3027},{"class":133,"line":144},[3028,3032],{"type":24,"tag":131,"props":3029,"children":3030},{"style":1327},[3031],{"type":30,"value":1330},{"type":24,"tag":131,"props":3033,"children":3034},{"style":236},[3035],{"type":30,"value":3036}," serve\n",{"type":24,"tag":36,"props":3038,"children":3039},{},[3040],{"type":30,"value":3041},"不需要 Kubernetes，不需要 Docker，单进程启动。",{"type":24,"tag":108,"props":3043,"children":3045},{"id":3044},"_2-全协议支持",[3046],{"type":30,"value":3047},"2. 全协议支持",{"type":24,"tag":54,"props":3049,"children":3050},{},[3051,3061,3071],{"type":24,"tag":58,"props":3052,"children":3053},{},[3054,3059],{"type":24,"tag":62,"props":3055,"children":3056},{},[3057],{"type":30,"value":3058},"stdio",{"type":30,"value":3060},"：本地 MCP Server（如 filesystem、database）",{"type":24,"tag":58,"props":3062,"children":3063},{},[3064,3069],{"type":24,"tag":62,"props":3065,"children":3066},{},[3067],{"type":30,"value":3068},"Streamable HTTP",{"type":30,"value":3070},"：远程 MCP Server（如 GitHub、Jira）",{"type":24,"tag":58,"props":3072,"children":3073},{},[3074,3079],{"type":24,"tag":62,"props":3075,"children":3076},{},[3077],{"type":30,"value":3078},"SSE",{"type":30,"value":3080},"：兼容旧版 Server",{"type":24,"tag":108,"props":3082,"children":3084},{"id":3083},"_3-中间件管道",[3085],{"type":30,"value":3086},"3. 中间件管道",{"type":24,"tag":120,"props":3088,"children":3090},{"code":3089},"请求 → 认证 → 限流 → 访问控制 → 工具过滤 → 代理 → 响应\n",[3091],{"type":24,"tag":127,"props":3092,"children":3093},{"__ignoreMap":7},[3094],{"type":30,"value":3089},{"type":24,"tag":36,"props":3096,"children":3097},{},[3098],{"type":30,"value":3099},"每个环节都可以独立配置和扩展。",{"type":24,"tag":108,"props":3101,"children":3103},{"id":3102},"_4-开发者友好",[3104],{"type":30,"value":3105},"4. 开发者友好",{"type":24,"tag":54,"props":3107,"children":3108},{},[3109,3120,3146],{"type":24,"tag":58,"props":3110,"children":3111},{},[3112,3114],{"type":30,"value":3113},"CLI 工具：",{"type":24,"tag":127,"props":3115,"children":3117},{"className":3116},[],[3118],{"type":30,"value":3119},"mcpforge server list/add/remove/health",{"type":24,"tag":58,"props":3121,"children":3122},{},[3123,3125,3131,3133,3139,3140],{"type":30,"value":3124},"REST API：",{"type":24,"tag":127,"props":3126,"children":3128},{"className":3127},[],[3129],{"type":30,"value":3130},"/tools",{"type":30,"value":3132},"、",{"type":24,"tag":127,"props":3134,"children":3136},{"className":3135},[],[3137],{"type":30,"value":3138},"/servers",{"type":30,"value":3132},{"type":24,"tag":127,"props":3141,"children":3143},{"className":3142},[],[3144],{"type":30,"value":3145},"/health",{"type":24,"tag":58,"props":3147,"children":3148},{},[3149],{"type":30,"value":3150},"自动生成 IDE 配置（Claude Code、Cursor、VS Code）",{"type":24,"tag":42,"props":3152,"children":3154},{"id":3153},"快速开始",[3155],{"type":30,"value":3153},{"type":24,"tag":120,"props":3157,"children":3159},{"code":3158,"language":1316,"meta":7,"className":1317,"style":7},"# 安装\npip install mcpforge\n\n# 生成 API Key\nmcpforge keygen\n\n# 创建配置\nmcpforge config init\n\n# 启动网关\nmcpforge serve\n",[3160],{"type":24,"tag":127,"props":3161,"children":3162},{"__ignoreMap":7},[3163,3171,3186,3193,3201,3213,3220,3228,3245,3252,3260],{"type":24,"tag":131,"props":3164,"children":3165},{"class":133,"line":134},[3166],{"type":24,"tag":131,"props":3167,"children":3168},{"style":138},[3169],{"type":30,"value":3170},"# 安装\n",{"type":24,"tag":131,"props":3172,"children":3173},{"class":133,"line":144},[3174,3178,3182],{"type":24,"tag":131,"props":3175,"children":3176},{"style":1327},[3177],{"type":30,"value":3014},{"type":24,"tag":131,"props":3179,"children":3180},{"style":236},[3181],{"type":30,"value":3019},{"type":24,"tag":131,"props":3183,"children":3184},{"style":236},[3185],{"type":30,"value":3024},{"type":24,"tag":131,"props":3187,"children":3188},{"class":133,"line":154},[3189],{"type":24,"tag":131,"props":3190,"children":3191},{"emptyLinePlaceholder":19},[3192],{"type":30,"value":443},{"type":24,"tag":131,"props":3194,"children":3195},{"class":133,"line":186},[3196],{"type":24,"tag":131,"props":3197,"children":3198},{"style":138},[3199],{"type":30,"value":3200},"# 生成 API Key\n",{"type":24,"tag":131,"props":3202,"children":3203},{"class":133,"line":308},[3204,3208],{"type":24,"tag":131,"props":3205,"children":3206},{"style":1327},[3207],{"type":30,"value":1330},{"type":24,"tag":131,"props":3209,"children":3210},{"style":236},[3211],{"type":30,"value":3212}," keygen\n",{"type":24,"tag":131,"props":3214,"children":3215},{"class":133,"line":419},[3216],{"type":24,"tag":131,"props":3217,"children":3218},{"emptyLinePlaceholder":19},[3219],{"type":30,"value":443},{"type":24,"tag":131,"props":3221,"children":3222},{"class":133,"line":428},[3223],{"type":24,"tag":131,"props":3224,"children":3225},{"style":138},[3226],{"type":30,"value":3227},"# 创建配置\n",{"type":24,"tag":131,"props":3229,"children":3230},{"class":133,"line":437},[3231,3235,3240],{"type":24,"tag":131,"props":3232,"children":3233},{"style":1327},[3234],{"type":30,"value":1330},{"type":24,"tag":131,"props":3236,"children":3237},{"style":236},[3238],{"type":30,"value":3239}," config",{"type":24,"tag":131,"props":3241,"children":3242},{"style":236},[3243],{"type":30,"value":3244}," init\n",{"type":24,"tag":131,"props":3246,"children":3247},{"class":133,"line":446},[3248],{"type":24,"tag":131,"props":3249,"children":3250},{"emptyLinePlaceholder":19},[3251],{"type":30,"value":443},{"type":24,"tag":131,"props":3253,"children":3254},{"class":133,"line":455},[3255],{"type":24,"tag":131,"props":3256,"children":3257},{"style":138},[3258],{"type":30,"value":3259},"# 启动网关\n",{"type":24,"tag":131,"props":3261,"children":3262},{"class":133,"line":463},[3263,3267],{"type":24,"tag":131,"props":3264,"children":3265},{"style":1327},[3266],{"type":30,"value":1330},{"type":24,"tag":131,"props":3268,"children":3269},{"style":236},[3270],{"type":30,"value":3036},{"type":24,"tag":36,"props":3272,"children":3273},{},[3274,3276,3284],{"type":30,"value":3275},"访问 ",{"type":24,"tag":3277,"props":3278,"children":3282},"a",{"href":3279,"rel":3280},"http://localhost:8080/docs",[3281],"nofollow",[3283],{"type":30,"value":3279},{"type":30,"value":3285}," 查看 API 文档。",{"type":24,"tag":42,"props":3287,"children":3289},{"id":3288},"总结",[3290],{"type":30,"value":3288},{"type":24,"tag":36,"props":3292,"children":3293},{},[3294],{"type":30,"value":3295},"MCP 生态的爆发式增长带来了治理挑战。企业需要：",{"type":24,"tag":54,"props":3297,"children":3298},{},[3299,3311,3322,3333],{"type":24,"tag":58,"props":3300,"children":3301},{},[3302,3304,3309],{"type":30,"value":3303},"✅ ",{"type":24,"tag":62,"props":3305,"children":3306},{},[3307],{"type":30,"value":3308},"统一管理",{"type":30,"value":3310},"：一次配置，处处可用",{"type":24,"tag":58,"props":3312,"children":3313},{},[3314,3315,3320],{"type":30,"value":3303},{"type":24,"tag":62,"props":3316,"children":3317},{},[3318],{"type":30,"value":3319},"权限控制",{"type":30,"value":3321},"：基于角色的工具访问",{"type":24,"tag":58,"props":3323,"children":3324},{},[3325,3326,3331],{"type":30,"value":3303},{"type":24,"tag":62,"props":3327,"children":3328},{},[3329],{"type":30,"value":3330},"限流保护",{"type":30,"value":3332},"：防止滥用和资源耗尽",{"type":24,"tag":58,"props":3334,"children":3335},{},[3336,3337,3342],{"type":30,"value":3303},{"type":24,"tag":62,"props":3338,"children":3339},{},[3340],{"type":30,"value":3341},"可观测性",{"type":30,"value":3343},"：完整的调用日志和监控",{"type":24,"tag":36,"props":3345,"children":3346},{},[3347,3349,3354],{"type":30,"value":3348},"MCPForge 为中小企业提供了一个",{"type":24,"tag":62,"props":3350,"children":3351},{},[3352],{"type":30,"value":3353},"轻量级、零依赖、渐进式复杂度",{"type":30,"value":3355},"的解决方案。",{"type":24,"tag":36,"props":3357,"children":3358},{},[3359],{"type":24,"tag":62,"props":3360,"children":3361},{},[3362],{"type":30,"value":3363},"不需要 Kubernetes，不需要复杂的运维，10 分钟内跑起来。",{"type":24,"tag":3365,"props":3366,"children":3367},"hr",{},[],{"type":24,"tag":36,"props":3369,"children":3370},{},[3371,3376,3378,3384,3388,3393],{"type":24,"tag":62,"props":3372,"children":3373},{},[3374],{"type":30,"value":3375},"GitHub",{"type":30,"value":3377},": ",{"type":24,"tag":3277,"props":3379,"children":3382},{"href":3380,"rel":3381},"https://github.com/ljl3937/mcpforge",[3281],[3383],{"type":30,"value":3380},{"type":24,"tag":3385,"props":3386,"children":3387},"br",{},[],{"type":24,"tag":62,"props":3389,"children":3390},{},[3391],{"type":30,"value":3392},"License",{"type":30,"value":3394},": MIT",{"type":24,"tag":36,"props":3396,"children":3397},{},[3398],{"type":30,"value":3399},"欢迎 Star、Fork、贡献代码！",{"type":24,"tag":3401,"props":3402,"children":3403},"style",{},[3404],{"type":30,"value":3405},"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);}",{"title":7,"searchDepth":144,"depth":144,"links":3407},[3408,3409,3415,3419,3424,3430,3431],{"id":44,"depth":144,"text":47},{"id":104,"depth":144,"text":104,"children":3410},[3411,3412,3413,3414],{"id":110,"depth":154,"text":113},{"id":747,"depth":154,"text":750},{"id":792,"depth":154,"text":795},{"id":829,"depth":154,"text":832},{"id":958,"depth":144,"text":961,"children":3416},[3417,3418],{"id":964,"depth":154,"text":967},{"id":978,"depth":154,"text":978},{"id":2407,"depth":144,"text":2407,"children":3420},[3421,3422,3423],{"id":2412,"depth":154,"text":2415},{"id":2484,"depth":154,"text":2487},{"id":2926,"depth":154,"text":2929},{"id":2991,"depth":144,"text":2991,"children":3425},[3426,3427,3428,3429],{"id":2996,"depth":154,"text":2999},{"id":3044,"depth":154,"text":3047},{"id":3083,"depth":154,"text":3086},{"id":3102,"depth":154,"text":3105},{"id":3153,"depth":144,"text":3153},{"id":3288,"depth":144,"text":3288},"markdown","content:blogs:enterprise-mcp-gateway.md","content","blogs/enterprise-mcp-gateway.md","blogs/enterprise-mcp-gateway","md",{"loc":4},1782120399870]