-
Notifications
You must be signed in to change notification settings - Fork 781
Cloud docs update, Specifying OpenAI dependency, adding explicit instruction for key #593
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
0ff645b
315f9e1
78c3cd4
9edcb27
9562401
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 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -122,7 +122,7 @@ if __name__ == "__main__": | |||||||||||||
| <p><b>Beta:</b> Deploy agents yourself, or use <b>mcp-c</b> for a managed agent runtime. All apps are deployed as MCP servers.</p> | ||||||||||||||
| <p> | ||||||||||||||
| <a href="https://www.youtube.com/watch?v=0C4VY-3IVNU">Demo ↗</a> | | ||||||||||||||
| <a href="https://docs.mcp-agent.com/get-started/deploy-to-cloud">Cloud Quickstart ↗</a> | | ||||||||||||||
| <a href="https://docs.mcp-agent.com/get-started/cloud">Cloud Quickstart ↗</a> | | ||||||||||||||
| <a href="https://docs.mcp-agent.com/cloud/overview">Docs ↗</a> | ||||||||||||||
| </p> | ||||||||||||||
| </td> | ||||||||||||||
|
|
@@ -974,7 +974,8 @@ You can use mcp-agent applications in a standalone fashion (i.e. they aren't par | |||||||||||||
|
|
||||||||||||||
| ### How do I deploy to Cloud? | ||||||||||||||
|
|
||||||||||||||
| Run `uvx mcp-agent deploy <app-name>` after logging in with `uvx mcp-agent login`. The CLI packages your project, provisions secrets, and exposes an MCP endpoint backed by a durable Temporal runtime. See the [Cloud quickstart](https://docs.mcp-agent.com/get-started/deploy-to-cloud) for step-by-step screenshots and CLI output. | ||||||||||||||
| Run `uvx mcp-agent deploy <app-name>` after logging in with `uvx mcp-agent login`. The CLI packages your project, provisions secrets, and exposes an MCP endpoint backed by a durable Temporal runtime. See the [Cloud quickstart](https://docs.mcp-agent.com/get-started/ | ||||||||||||||
| cloud) for step-by-step screenshots and CLI output. | ||||||||||||||
|
Comment on lines
+977
to
+978
Contributor
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. The URL for the Cloud quickstart documentation is split across two lines, which will break the link when rendered. The markdown link should be on a single line to function properly: See the [Cloud quickstart](https://docs.mcp-agent.com/get-started/cloud) for step-by-step screenshots and CLI output.
Suggested change
Spotted by Graphite Agent
Comment on lines
+977
to
+978
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. Wrap the bare URL in proper markdown link format. The URL spanning lines 977–978 should be wrapped in markdown link syntax. A bare URL violates the markdown linting rules (MD034). Apply this diff to fix the bare URL formatting: - See the [Cloud quickstart](https://docs.mcp-agent.com/get-started/
- cloud) for step-by-step screenshots and CLI output.
+ See the [Cloud quickstart](https://docs.mcp-agent.com/get-started/cloud) for step-by-step screenshots and CLI output.📝 Committable suggestion
Suggested change
🧰 Tools🪛 markdownlint-cli2 (0.18.1)977-977: Bare URL used (MD034, no-bare-urls) 🤖 Prompt for AI Agents |
||||||||||||||
|
|
||||||||||||||
| ### Where is the API reference? | ||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,40 +1,38 @@ | ||
| --- | ||
| title: Deploy to Cloud | ||
| sidebarTitle: "Deploy to Cloud" | ||
| description: "Publish your agent to the Cloud with the CLI." | ||
| title: "MCP-Cloud (mcp-c)" | ||
|
Collaborator
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. Maybe title should be Cloud Deployment (mcpc)? |
||
| sidebarTitle: "Cloud" | ||
| description: "Deploy and host your mcp-agents and apps on the cloud." | ||
| icon: cloud | ||
| --- | ||
|
|
||
| <Info> | ||
| `mcp-c` is in open beta, and free to use. Share feedback via [GitHub issues](https://github.com/lastmile-ai/mcp-agent/issues) or [Discord](https://lmai.link/discord/mcp-agent). | ||
| </Info> | ||
|
|
||
| ## What is mcp-c? | ||
| ## What is MCP-Cloud? | ||
|
|
||
| Before diving into the workflow, here is the 30‑second summary. See the dedicated pages under [Deployment](/cloud/overview) for full detail: | ||
| MCP-Cloud (mcp-c) is a fully managed cloud platform for hosting mcp-agents, apps, and mcp servers. | ||
|
|
||
| - **One runtime for any MCP application** – deploy durable `mcp-agent` workflows, FastMCP servers, or ChatGPT App backends. Everything is exposed as an MCP server at `https://<app_id>.deployments.mcp-agent.com` ([Cloud overview](/cloud/mcp-agent-cloud/overview)). | ||
| <iframe | ||
| src="https://www.youtube.com/embed/0C4VY-3IVNU" | ||
| title="mcp-agent cloud overview" | ||
| width="100%" | ||
| height="420" | ||
| frameborder="0" | ||
| allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" | ||
| allowfullscreen | ||
| /> | ||
|
|
||
| ### Key Benefits | ||
|
|
||
| - **One runtime for any MCP application** – deploy durable `mcp-agent` workflows, FastMCP servers, or ChatGPT App backends. Everything is exposed as an MCP server at `https://<unique_id>.deployments.mcp-agent.com` ([Cloud overview](/cloud/mcp-agent-cloud/overview)). | ||
| - **Temporal-backed execution** – long-running tools and workflows run on Temporal with retries, pause/resume, and human input support ([Long-running tools](/cloud/mcp-agent-cloud/long-running-tools)). | ||
| - **Managed secrets & authentication** – classify secrets during deploy, collect user secrets later, and choose bearer or unauthenticated access today (OAuth coming soon) ([Manage secrets](/cloud/mcp-agent-cloud/manage-secrets) and [Deployment auth](/cloud/authentication/deployment-auth)). | ||
| - **Managed secrets & authentication** – manage secrets for both you, as the developer, and your users. Allow users to specify their own keys, and choose bearer or unauthenticated access today (OAuth coming soon) ([Manage secrets](/cloud/mcp-agent-cloud/manage-secrets) and [Deployment auth](/cloud/authentication/deployment-auth)). | ||
| - **Observability built in** – stream logs, forward traces, and inspect workflow history directly from the CLI ([Observability](/cloud/observability)). | ||
| - **Easy client install** – use `mcp-agent install` or `mcp-agent cloud configure` to wire the deployed server into Claude Desktop, Cursor, VS Code, or ChatGPT Apps ([Use a deployed server](/cloud/mcp-agent-cloud/use-deployed-server)). | ||
|
|
||
| With that context, the steps below show exactly how to deploy. | ||
|
|
||
| ## TL;DR – three commands | ||
|
|
||
| ```bash | ||
| uvx mcp-agent login | ||
| uvx mcp-agent deploy my-agent | ||
| uvx mcp-agent cloud servers list | ||
| uvx mcp-agent cloud servers describe my-agent | ||
| ``` | ||
|
|
||
| 1. `login` stores your API token locally. | ||
| 2. `deploy` packages the current directory and uploads it. | ||
| 3. `cloud servers list` shows every deployment you have access to. | ||
| 4. `cloud servers describe` confirms the deployment URL and secret policy. | ||
|
|
||
| ## 1. Authenticate | ||
|
|
||
| ```bash | ||
|
|
@@ -51,7 +49,7 @@ From the directory containing your `mcp_agent.config.yaml` (or pass `--config-di | |
| uvx mcp-agent deploy my-agent | ||
| ``` | ||
|
|
||
| During deployment you'll classify secrets as **deployment** (stored securely) or **user** (provided later via `mcp-agent cloud configure`). Use `--dry-run` to validate without uploading or `--non-interactive` for CI. | ||
| During deployment you'll classify secrets as **deployment** (stored securely) or **user** (provided later via `mcp-agent cloud configure`). | ||
|
|
||
| <CodeGroup> | ||
| ```bash basic | ||
|
|
@@ -61,14 +59,14 @@ directory/ | |
| └── mcp_agent.secrets.yaml | ||
| ``` | ||
| ```bash deploy | ||
| uvx mcp-agent deploy my-agent --dry-run | ||
| uvx mcp-agent deploy my-agent | ||
| ``` | ||
| </CodeGroup> | ||
|
|
||
| After a successful deploy you'll receive an endpoint like: | ||
|
|
||
| ``` | ||
| https://<app_id>.deployments.mcp-agent.com | ||
| https://<unique_id>.deployments.mcp-agent.com | ||
| ``` | ||
|
|
||
| ## 3. Connect from clients | ||
|
|
@@ -78,13 +76,12 @@ Your cloud deployment is a standard MCP server. Use any MCP client: | |
| <Tabs> | ||
| <Tab title="Claude Desktop"> | ||
| ```bash | ||
| uvx mcp-agent install https://<app_id>.deployments.mcp-agent.com \ | ||
| uvx mcp-agent install https://<unique_id>.deployments.mcp-agent.com \ | ||
| --client claude_desktop \ | ||
| --name research-buddy \ | ||
| --dry-run | ||
| --name research-buddy | ||
| ``` | ||
|
|
||
| Replace `claude_desktop` with `vscode`, `cursor`, `chatgpt` to install in those clients instead. | ||
| Replace `claude_desktop` with `vscode`, `cursor`, `chatgpt`, `claude_code` to install in those clients instead. | ||
| </Tab> | ||
|
|
||
| <Tab title="Python"> | ||
|
|
@@ -95,7 +92,7 @@ Your cloud deployment is a standard MCP server. Use any MCP client: | |
| servers: | ||
| my_agent_cloud: | ||
| transport: sse | ||
| url: "https://<app_id>.deployments.mcp-agent.com/sse" | ||
| url: "https://<unique_id>.deployments.mcp-agent.com/sse" | ||
|
Collaborator
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. Why these changes? App id is the correct thing here. Unique id doesn't say much
Contributor
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 actually not the app_id, it's another unique identifier that isn't used anywhere else. |
||
| headers: | ||
| Authorization: "Bearer ${MCP_API_KEY}" | ||
| ``` | ||
|
|
@@ -142,39 +139,60 @@ Your cloud deployment is a standard MCP server. Use any MCP client: | |
| </Tab> | ||
| </Tabs> | ||
|
|
||
| ## Example: web summarizer workflow | ||
| ## Example: 👋 Hello World agent | ||
|
|
||
| ```python main.py | ||
| import asyncio | ||
| from typing import Optional | ||
|
|
||
| from mcp_agent.app import MCPApp | ||
| from mcp_agent.agents.agent import Agent | ||
| from mcp_agent.executor.workflow import Workflow, WorkflowResult | ||
| from mcp_agent.core.context import Context as AppContext | ||
| from mcp_agent.workflows.llm.augmented_llm_openai import OpenAIAugmentedLLM | ||
|
|
||
| app = MCPApp(name="web_summarizer") | ||
|
|
||
| @app.workflow | ||
| class WebSummarizerWorkflow(Workflow[str]): | ||
| @app.workflow_run | ||
| async def run(self, url: str) -> WorkflowResult[str]: | ||
| agent = Agent( | ||
| name="summarizer", | ||
| instruction="Fetch and summarize web content concisely.", | ||
| server_names=["fetch"], | ||
| # Create the MCPApp, the root of mcp-agent. | ||
| app = MCPApp(name="hello_world", description="Hello world mcp-agent application") | ||
|
|
||
| # Hello world agent: an Agent using MCP servers + LLM | ||
| @app.tool() | ||
| async def finder_agent(request: str, app_ctx: Optional[AppContext] = None) -> str: | ||
| """ | ||
| Run an Agent with access to MCP servers (fetch + filesystem) to handle | ||
| the input request. | ||
| """ | ||
| agent = Agent( | ||
| name="finder", | ||
| instruction=( | ||
| """You are a helpful assistant. Use MCP servers to fetch and read | ||
| files, then answer the request concisely.""" | ||
| ), | ||
| server_names=["fetch", "filesystem"], | ||
| context=app_ctx, | ||
| ) | ||
|
|
||
| async with agent: | ||
| llm = await agent.attach_llm(OpenAIAugmentedLLM) | ||
| result = await llm.generate_str(message=request) | ||
| return result | ||
|
|
||
| async def main(): | ||
| async with app.run() as agent_app: | ||
| # Run the agent | ||
| readme_summary = await finder_agent( | ||
| request="Please summarize the README.md file in this directory.", | ||
| app_ctx=agent_app.context, | ||
| ) | ||
| print(readme_summary) | ||
|
|
||
|
|
||
| async with agent: | ||
| llm = await agent.attach_llm(OpenAIAugmentedLLM) | ||
| summary = await llm.generate_str( | ||
| f"Fetch {url} and provide a 3-sentence summary" | ||
| ) | ||
| return WorkflowResult(value=summary) | ||
| if __name__ == "__main__": | ||
| asyncio.run(main()) | ||
| ``` | ||
|
|
||
| Deploy with: | ||
|
|
||
| ```bash | ||
| uvx mcp-agent deploy web-summarizer | ||
| uvx mcp-agent deploy hello-world | ||
| ``` | ||
|
|
||
| ## Learn more | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm shouldn't it point to QuickStart?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess, what's cloud quickstart?
Originally, it was quickstart with
install,cloud quickstart, andquickstart, butquickstartcovered both install and cloud deploy.