Solves the "ships passing in the night" problem where agents publish messages before other agents have subscribed, causing dropped messages. New tools: - mqtt_host_conversation: Initiating agent hosts and waits for joiners - mqtt_join_conversation: Joining agents connect and signal ready - mqtt_conversation_status: Check conversation state - mqtt_list_conversations: List active conversations The protocol guarantees no messages are dropped by ensuring all expected agents are subscribed before the host begins publishing.
210 lines
7.2 KiB
JavaScript
210 lines
7.2 KiB
JavaScript
import { defineConfig } from 'astro/config';
|
|
import starlight from '@astrojs/starlight';
|
|
import alpinejs from '@astrojs/alpinejs';
|
|
|
|
export default defineConfig({
|
|
site: 'https://mcmqtt.dev',
|
|
base: '/',
|
|
trailingSlash: 'ignore',
|
|
build: {
|
|
format: 'directory',
|
|
},
|
|
integrations: [
|
|
alpinejs(),
|
|
starlight({
|
|
title: 'mcmqtt - AI Coordination Platform',
|
|
description: 'The definitive platform for AI coordination with revolutionary fractal agent swarms. Deploy sophisticated multi-agent systems with zero-config infrastructure and production-grade safety.',
|
|
logo: {
|
|
src: './src/assets/mcmqtt-logo.svg',
|
|
replacesTitle: true,
|
|
},
|
|
social: {
|
|
github: 'https://git.supported.systems/MCP/mcmqtt',
|
|
discord: 'https://discord.gg/mcmqtt',
|
|
twitter: 'https://twitter.com/mcmqtt',
|
|
},
|
|
editLink: {
|
|
baseUrl: 'https://git.supported.systems/MCP/mcmqtt/edit/main/docs-site/',
|
|
},
|
|
lastUpdated: true,
|
|
customCss: [
|
|
'./src/styles/custom.css',
|
|
],
|
|
components: {
|
|
Head: './src/components/Head.astro',
|
|
Hero: './src/components/Hero.astro',
|
|
},
|
|
favicon: '/favicon.svg',
|
|
sidebar: [
|
|
{
|
|
label: 'Start Here',
|
|
items: [
|
|
{ label: 'Quick Start', link: '/guides/quick-start/' },
|
|
{ label: 'Installation', link: '/guides/installation/' },
|
|
{ label: 'Configuration', link: '/guides/configuration/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Fractal Agent Coordination',
|
|
badge: 'New',
|
|
items: [
|
|
{ label: 'Overview', link: '/coordination/overview/' },
|
|
{ label: 'Agent Handshake Protocol', link: '/coordination/agent-handshake/', badge: 'New' },
|
|
{ label: 'Agent Swarms', link: '/coordination/swarms/' },
|
|
{ label: 'Browser Testing', link: '/coordination/browser-testing/' },
|
|
{ label: 'API Monitoring', link: '/coordination/api-monitoring/' },
|
|
{ label: 'Security Analysis', link: '/coordination/security/' },
|
|
{ label: 'Safety & Isolation', link: '/coordination/safety/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Tutorials',
|
|
items: [
|
|
{ label: 'Your First MQTT Connection', link: '/tutorials/first-connection/' },
|
|
{ label: 'Building Agent Networks', link: '/tutorials/agent-networks/' },
|
|
{ label: 'Real-time Data Streams', link: '/tutorials/data-streams/' },
|
|
{ label: 'Production Deployment', link: '/tutorials/production/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'How-to Guides',
|
|
items: [
|
|
{ label: 'Spawn Dynamic Brokers', link: '/how-to/dynamic-brokers/' },
|
|
{ label: 'Implement Custom Tools', link: '/how-to/custom-tools/' },
|
|
{ label: 'Monitor Agent Health', link: '/how-to/monitoring/' },
|
|
{ label: 'Scale Horizontally', link: '/how-to/scaling/' },
|
|
{ label: 'Debug Connections', link: '/how-to/debugging/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Core Features',
|
|
items: [
|
|
{ label: 'MQTT Integration', link: '/features/mqtt/' },
|
|
{ label: 'FastMCP Server', link: '/features/fastmcp/' },
|
|
{ label: 'Embedded Brokers', link: '/features/brokers/' },
|
|
{ label: 'Real-time Messaging', link: '/features/messaging/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'API Reference',
|
|
items: [
|
|
{ label: 'MCP Tools', link: '/reference/mcp-tools/' },
|
|
{ label: 'MQTT Methods', link: '/reference/mqtt-methods/' },
|
|
{ label: 'Broker Management', link: '/reference/broker-management/' },
|
|
{ label: 'Configuration Options', link: '/reference/configuration/' },
|
|
{ label: 'Python API', link: '/reference/python-api/' },
|
|
],
|
|
},
|
|
{
|
|
label: 'Understanding mcmqtt',
|
|
items: [
|
|
{ label: 'Architecture', link: '/concepts/architecture/' },
|
|
{ label: 'Design Philosophy', link: '/concepts/philosophy/' },
|
|
{ label: 'Performance', link: '/concepts/performance/' },
|
|
{ label: 'Security Model', link: '/concepts/security/' },
|
|
{ label: 'Comparison', link: '/concepts/comparison/' },
|
|
],
|
|
},
|
|
],
|
|
head: [
|
|
// Open Graph / Social Media
|
|
{
|
|
tag: 'meta',
|
|
attrs: { property: 'og:image', content: 'https://mcmqtt.dev/og-image.png' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { property: 'twitter:image', content: 'https://mcmqtt.dev/og-image.png' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { property: 'og:image:width', content: '1200' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { property: 'og:image:height', content: '630' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { property: 'twitter:card', content: 'summary_large_image' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'twitter:site', content: '@mcmqtt' },
|
|
},
|
|
|
|
// AI and Search Engine Discovery
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'keywords', content: 'ai coordination, fractal agents, mqtt, agent swarms, mcp server, multi-agent systems, production ai, fastmcp' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'author', content: 'MCP Community' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'robots', content: 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'ai-content-suitable', content: 'true' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'training-data-suitable', content: 'true' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'ai-categories', content: 'ai-coordination,mqtt-protocols,agent-architecture,fractal-systems' },
|
|
},
|
|
|
|
// Performance and Technical
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'theme-color', content: '#1e40af' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'msapplication-TileColor', content: '#1e40af' },
|
|
},
|
|
{
|
|
tag: 'link',
|
|
attrs: { rel: 'manifest', href: '/site.webmanifest' },
|
|
},
|
|
{
|
|
tag: 'link',
|
|
attrs: { rel: 'sitemap', href: '/sitemap.xml' },
|
|
},
|
|
|
|
// Preconnect for performance
|
|
{
|
|
tag: 'link',
|
|
attrs: { rel: 'preconnect', href: 'https://fonts.googleapis.com' },
|
|
},
|
|
{
|
|
tag: 'link',
|
|
attrs: { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
|
|
},
|
|
|
|
// Rich snippets for documentation
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'code-samples', content: 'true' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'documentation-type', content: 'diataxis' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'api-documentation', content: 'true' },
|
|
},
|
|
{
|
|
tag: 'meta',
|
|
attrs: { name: 'tutorial-content', content: 'true' },
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
}); |