Packages

An Elixir SDK for the Amp CLI - programmatic access to Amp's AI coding agent.

Current section

Files

Jump to
amp_sdk examples mcp_manage.exs
Raw

examples/mcp_manage.exs

# MCP server lifecycle: add, approve, remove
# Run with: mix run examples/mcp_manage.exs
Code.require_file(Path.expand("support/example_helper.exs", __DIR__))
alias Examples.Support
Support.init!()
IO.puts("=== MCP Manage ===\n")
server_name = "amp-sdk-test-echo-#{System.unique_integer([:positive])}"
# Add a local MCP server (stdio)
IO.puts("Adding MCP server '#{server_name}':")
case AmpSdk.mcp_add(
server_name,
["echo", "hello"],
Support.command_opts(env: %{}, workspace: true)
) do
{:ok, output} -> IO.puts(" #{String.trim(output)}")
{:error, err} -> IO.puts(" Error: #{inspect(err)}")
end
# Approve the server
IO.puts("\nApproving:")
case Support.invoke(["mcp", "approve", server_name]) do
{:ok, output} -> IO.puts(" #{String.trim(output)}")
{:error, err} -> IO.puts(" Error: #{inspect(err)}")
end
# Remove the server (cleanup)
IO.puts("\nRemoving:")
case Support.invoke(["mcp", "remove", server_name]) do
{:ok, output} -> IO.puts(" #{String.trim(output)}")
{:error, err} -> IO.puts(" Error: #{inspect(err)}")
end
System.halt(0)