-
Notifications
You must be signed in to change notification settings - Fork 5
feat: add website #25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| __pycache__/ | ||
| *.pyc | ||
| *.pyo | ||
| *.pyd | ||
| .git/ | ||
| .gitignore | ||
| .DS_Store |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| FROM python:3.12-slim | ||
|
|
||
| WORKDIR /app | ||
|
|
||
| ENV PYTHONDONTWRITEBYTECODE=1 \ | ||
| PYTHONUNBUFFERED=1 | ||
|
|
||
| COPY requirements.txt ./ | ||
| RUN pip install --no-cache-dir -r requirements.txt | ||
|
|
||
| COPY . . | ||
|
|
||
| EXPOSE 8080 | ||
|
|
||
| CMD ["gunicorn", "-b", "0.0.0.0:8080", "app:app"] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| # Website | ||
|
|
||
| Basic website project. | ||
|
|
||
| ## Files | ||
|
|
||
| - `templates/index.html` - main page template | ||
| - `templates/base.html` - shared layout | ||
| - `static/style.css` - landing page styles | ||
| - `static/docs.css` - documentation styles | ||
| - `app.py` - Flask server entry point | ||
| - `Dockerfile` - container setup | ||
|
|
||
| ## Run | ||
|
|
||
| ```sh | ||
| python app.py | ||
| ``` | ||
|
|
||
| ## Python (virtualenv) | ||
|
|
||
| ```sh | ||
| python3 -m venv .venv | ||
| source .venv/bin/activate | ||
| pip install -r requirements.txt | ||
| python3 app.py | ||
| ``` | ||
|
|
||
| ## Docker | ||
|
|
||
| ```sh | ||
| docker build -t website . | ||
| docker run --rm -p 8080:8080 website | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,171 @@ | ||
| from flask import Flask, redirect, render_template, send_from_directory | ||
|
|
||
| app = Flask(__name__) | ||
|
|
||
| NAV_LINKS = [ | ||
| {"label": "Overview", "href": "#overview"}, | ||
| {"label": "Features", "href": "#features"}, | ||
| {"label": "Workflow", "href": "#workflow"}, | ||
| {"label": "Architecture", "href": "#architecture"}, | ||
| {"label": "Docs", "href": "/docs/"}, | ||
| ] | ||
|
|
||
| HERO = { | ||
| "badge": "docs.mcp-runtime.org", | ||
| "title": "Launch MCP servers with a platform, not a patchwork.", | ||
| "subtitle": ( | ||
| "MCP Runtime Platform gives teams a registry, Kubernetes operator, and " | ||
| "CLI that standardizes how MCP servers are defined, built, and routed." | ||
| ), | ||
| "primary": {"label": "Open Documentation", "href": "/docs/"}, | ||
| "secondary": {"label": "View features", "href": "#features"}, | ||
| } | ||
|
|
||
| AT_A_GLANCE = [ | ||
| "Metadata-driven server definitions in YAML.", | ||
| "Operator creates Deployment, Service, and Ingress automatically.", | ||
| "Internal registry keeps images and metadata in sync.", | ||
| "Unified routes for every server at /{server-name}/mcp.", | ||
| ] | ||
|
|
||
| STATS = [ | ||
| {"value": "1 CLI", "label": "Unified workflow for platform and servers."}, | ||
| {"value": "3 core services", "label": "Registry, operator, and cluster helpers."}, | ||
| {"value": "0 bespoke YAML", "label": "No hand-written manifests for each server."}, | ||
| ] | ||
|
|
||
| OVERVIEW = { | ||
| "title": "Why MCP Runtime Platform", | ||
| "intro": ( | ||
| "Move from experiments to production with a clear, repeatable approach " | ||
| "to deploying and cataloging MCP servers." | ||
| ), | ||
| "items": [ | ||
| { | ||
| "title": "Built for scale", | ||
| "body": ( | ||
| "Manage a fleet of MCP servers without third-party gateways or " | ||
| "bespoke routing layers." | ||
| ), | ||
| }, | ||
| { | ||
| "title": "Designed for teams", | ||
| "body": ( | ||
| "A centralized registry and consistent deployment flow make it " | ||
| "easy to discover and reuse servers." | ||
| ), | ||
| }, | ||
| { | ||
| "title": "Opinionated safety", | ||
| "body": "Promote best practices with standardized metadata and CI-ready pipelines.", | ||
| }, | ||
| ], | ||
| } | ||
|
|
||
| FEATURES = [ | ||
| { | ||
| "title": "Complete platform", | ||
| "body": "Deploy registry, operator, and helpers in one setup flow built for MCP fleets.", | ||
| }, | ||
| { | ||
| "title": "CLI tooling", | ||
| "body": "Manage platform setup, registry operations, and server pipelines from one CLI.", | ||
| }, | ||
| { | ||
| "title": "Kubernetes operator", | ||
| "body": "Creates Deployment, Service, and Ingress resources from MCP metadata.", | ||
| }, | ||
| { | ||
| "title": "Metadata-driven", | ||
| "body": "Define MCP servers in YAML without hand-writing Kubernetes manifests.", | ||
| }, | ||
| { | ||
| "title": "Unified routing", | ||
| "body": "Every MCP server is reachable at a consistent /{server-name}/mcp path.", | ||
| }, | ||
| { | ||
| "title": "Automated builds", | ||
| "body": "Build Docker images from metadata and keep registry entries up to date.", | ||
| }, | ||
| ] | ||
|
|
||
| WORKFLOW = [ | ||
| { | ||
| "step": "01", | ||
| "title": "Define", | ||
| "body": "Capture server metadata in YAML, including name, route, and container port.", | ||
| }, | ||
| { | ||
| "step": "02", | ||
| "title": "Build", | ||
| "body": "Build Docker images locally or in CI/CD and push them to the registry.", | ||
| }, | ||
| { | ||
| "step": "03", | ||
| "title": "Deploy", | ||
| "body": "Generate manifests and deploy MCP servers through the operator.", | ||
| }, | ||
| { | ||
| "step": "04", | ||
| "title": "Access", | ||
| "body": "Reach every MCP server through consistent URLs managed by ingress.", | ||
| }, | ||
| ] | ||
|
|
||
| ARCHITECTURE = [ | ||
| { | ||
| "title": "Developer workstation", | ||
| "body": "Define servers, build images, and push updates from local development.", | ||
| }, | ||
| { | ||
| "title": "CI/CD pipeline", | ||
| "body": "Build images, publish to the registry, and generate CRDs automatically.", | ||
| }, | ||
| { | ||
| "title": "Kubernetes cluster", | ||
| "body": "The operator watches MCPServer resources and provisions services.", | ||
| }, | ||
| { | ||
| "title": "Internal registry", | ||
| "body": "Stores MCP server images and keeps metadata in sync for discovery.", | ||
| }, | ||
| ] | ||
|
|
||
| CALLOUT = { | ||
| "title": "Active development notice", | ||
| "body": ( | ||
| "MCP Runtime Platform is under active development. APIs, commands, and " | ||
| "behavior may change, and production usage is not recommended yet." | ||
| ), | ||
| "cta": {"label": "Read the documentation", "href": "/docs/"}, | ||
| } | ||
|
|
||
|
|
||
| @app.route("/") | ||
| def home(): | ||
| return render_template( | ||
| "index.html", | ||
| nav_links=NAV_LINKS, | ||
| hero=HERO, | ||
| at_a_glance=AT_A_GLANCE, | ||
| stats=STATS, | ||
| overview=OVERVIEW, | ||
| features=FEATURES, | ||
| workflow=WORKFLOW, | ||
| architecture=ARCHITECTURE, | ||
| callout=CALLOUT, | ||
| ) | ||
|
|
||
|
|
||
| @app.route("/docs") | ||
| def docs_redirect(): | ||
| return redirect("/docs/") | ||
|
|
||
|
|
||
| @app.route("/docs/") | ||
| def docs_index(): | ||
| return send_from_directory("docs", "index.html") | ||
|
Comment on lines
+165
to
+167
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Check if docs directory and index.html exist in the website folder
echo "=== Checking for docs directory ==="
fd -t d "^docs$" website
echo "=== Checking for docs/index.html ==="
fd "index.html" website/docs 2>/dev/null || echo "docs/index.html not found"Repository: Agent-Hellboy/mcp-runtime Length of output: 167 Create the The route at lines 16-18 serves 🤖 Prompt for AI Agents
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's fixed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: Length of output: 188 @Agent-Hellboy, I verified the repository but the Could you please:
You can check locally with: ls -la website/docs/index.htmlOnce the file is pushed to the repository, I'll be able to confirm the fix! 🐰 |
||
|
|
||
|
|
||
| if __name__ == "__main__": | ||
| app.run(host="0.0.0.0", port=8080) | ||
|
Agent-Hellboy marked this conversation as resolved.
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,117 @@ | ||
| <!DOCTYPE html> | ||
| <html lang="en"> | ||
| <head> | ||
| <meta charset="UTF-8" /> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
| <title>MCP Runtime Platform Docs</title> | ||
| <meta | ||
| name="description" | ||
| content="Documentation hub for MCP Runtime Platform." | ||
| /> | ||
| <link rel="stylesheet" href="/static/style.css" /> | ||
| </head> | ||
| <body> | ||
| <div class="page"> | ||
| <div class="bg-shape one" aria-hidden="true"></div> | ||
| <div class="bg-shape two" aria-hidden="true"></div> | ||
| <div class="bg-shape three" aria-hidden="true"></div> | ||
| <header class="site-header"> | ||
| <div class="container nav"> | ||
| <div class="brand"> | ||
| <div class="brand-mark" aria-hidden="true">MCP</div> | ||
| <div> | ||
| <div class="brand-title">MCP Runtime Platform</div> | ||
| <div class="brand-subtitle">Registry, operator, and CLI</div> | ||
| </div> | ||
| </div> | ||
| <nav class="nav-links"> | ||
| <a href="/">Overview</a> | ||
| <a href="/docs/">Docs</a> | ||
| </nav> | ||
| </div> | ||
| </header> | ||
|
|
||
| <main> | ||
| <section class="section container"> | ||
| <div class="section-header"> | ||
| <h2>Documentation</h2> | ||
| <p> | ||
| This is the landing page for MCP Runtime Platform docs. More guides | ||
| and reference material will live here. | ||
| </p> | ||
| </div> | ||
| <div class="card-grid"> | ||
| <article class="card"> | ||
| <h3>Get started</h3> | ||
| <p> | ||
| Explore the main repository for setup instructions, CLI usage, | ||
| and operator workflows. | ||
| </p> | ||
| <a class="button secondary" href="https://github.com/Agent-Hellboy/mcp-runtime"> | ||
| View the repo | ||
| </a> | ||
| </article> | ||
| <article class="card"> | ||
| <h3>Contribute</h3> | ||
| <p> | ||
| MCP Runtime Platform is open source. Contribute at | ||
| <a href="https://github.com/Agent-Hellboy/mcp-runtime">github.com/Agent-Hellboy/mcp-runtime</a> | ||
| or write to us at | ||
| <a href="mailto:princekrroshan01@gmail.com">princekrroshan01@gmail.com</a>. | ||
| </p> | ||
| <div class="footer-links"> | ||
| <a class="icon-link" href="https://github.com/Agent-Hellboy/mcp-runtime"> | ||
| <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"> | ||
| <path | ||
| fill="currentColor" | ||
| d="M12 2c-5.52 0-10 4.58-10 10.23 0 4.52 2.87 8.34 6.84 9.7.5.1.68-.22.68-.49 0-.24-.01-.87-.01-1.7-2.78.62-3.37-1.37-3.37-1.37-.46-1.19-1.12-1.51-1.12-1.51-.91-.64.07-.63.07-.63 1.01.07 1.55 1.06 1.55 1.06.9 1.58 2.36 1.12 2.94.86.09-.67.35-1.12.64-1.38-2.22-.26-4.56-1.13-4.56-5.02 0-1.11.39-2.02 1.03-2.74-.1-.26-.45-1.3.1-2.71 0 0 .85-.28 2.8 1.05a9.4 9.4 0 0 1 2.55-.35c.86 0 1.72.12 2.55.35 1.95-1.33 2.8-1.05 2.8-1.05.55 1.41.2 2.45.1 2.71.64.72 1.03 1.63 1.03 2.74 0 3.9-2.35 4.76-4.59 5.01.36.32.68.95.68 1.92 0 1.39-.01 2.5-.01 2.84 0 .27.18.6.69.49A10.19 10.19 0 0 0 22 12.23C22 6.58 17.52 2 12 2z" | ||
| /> | ||
| </svg> | ||
| GitHub | ||
| </a> | ||
| <a class="icon-link" href="mailto:princekrroshan01@gmail.com"> | ||
| <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"> | ||
| <path | ||
| fill="currentColor" | ||
| d="M4 5h16c1.1 0 2 .9 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7c0-1.1.9-2 2-2zm0 2v.1l8 4.9 8-4.9V7H4zm16 10V9.25l-7.48 4.6a1 1 0 0 1-1.04 0L4 9.25V17h16z" | ||
| /> | ||
| </svg> | ||
| </a> | ||
| </div> | ||
| </article> | ||
| </div> | ||
| </section> | ||
| </main> | ||
|
|
||
| <footer class="container footer"> | ||
| <div> | ||
| MCP Runtime Platform is open source. Contribute at | ||
| <a href="https://github.com/Agent-Hellboy/mcp-runtime">github.com/Agent-Hellboy/mcp-runtime</a> | ||
| or write to us at | ||
| <a href="mailto:princekrroshan01@gmail.com">princekrroshan01@gmail.com</a>. | ||
| </div> | ||
| <div class="footer-links"> | ||
| <a class="icon-link" href="https://github.com/Agent-Hellboy/mcp-runtime"> | ||
| <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"> | ||
| <path | ||
| fill="currentColor" | ||
| d="M12 2c-5.52 0-10 4.58-10 10.23 0 4.52 2.87 8.34 6.84 9.7.5.1.68-.22.68-.49 0-.24-.01-.87-.01-1.7-2.78.62-3.37-1.37-3.37-1.37-.46-1.19-1.12-1.51-1.12-1.51-.91-.64.07-.63.07-.63 1.01.07 1.55 1.06 1.55 1.06.9 1.58 2.36 1.12 2.94.86.09-.67.35-1.12.64-1.38-2.22-.26-4.56-1.13-4.56-5.02 0-1.11.39-2.02 1.03-2.74-.1-.26-.45-1.3.1-2.71 0 0 .85-.28 2.8 1.05a9.4 9.4 0 0 1 2.55-.35c.86 0 1.72.12 2.55.35 1.95-1.33 2.8-1.05 2.8-1.05.55 1.41.2 2.45.1 2.71.64.72 1.03 1.63 1.03 2.74 0 3.9-2.35 4.76-4.59 5.01.36.32.68.95.68 1.92 0 1.39-.01 2.5-.01 2.84 0 .27.18.6.69.49A10.19 10.19 0 0 0 22 12.23C22 6.58 17.52 2 12 2z" | ||
| /> | ||
| </svg> | ||
| GitHub | ||
| </a> | ||
| <a class="icon-link" href="mailto:princekrroshan01@gmail.com"> | ||
| <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"> | ||
| <path | ||
| fill="currentColor" | ||
| d="M4 5h16c1.1 0 2 .9 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7c0-1.1.9-2 2-2zm0 2v.1l8 4.9 8-4.9V7H4zm16 10V9.25l-7.48 4.6a1 1 0 0 1-1.04 0L4 9.25V17h16z" | ||
| /> | ||
| </svg> | ||
| </a> | ||
| </div> | ||
| </footer> | ||
| </div> | ||
| </body> | ||
| </html> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| Flask==3.0.3 | ||
| gunicorn==22.0.0 |
Uh oh!
There was an error while loading. Please reload this page.