无服务器Nova Sonic聊天应用 logo

无服务器Nova Sonic聊天应用

Organization
aws-samples

Run Nova Sonic on AWS Serverless (with MCP support)

Publisheraws-samples
Repositorysample-serverless-nova-sonic-chat
LanguageTypeScript
Forks
8
Stars
30
Available tools
0
Transport typestdio
Categories
LicenseMIT-0
Links
  • Connect tools to AI workflows

    无服务器Nova Sonic聊天应用 exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    30 stars and 8 forks from the linked repository.

Serverless Nova Sonic Chat App

This is a sample implementation for deploying a Nova Sonic application using serverless AWS services.

Architecture

Key Features

  • Implementation of serverless real-time communication between server and client using AppSync Events
  • Reference to past conversation history
  • ToolUse implementation
  • MCP (Model Context Protocol) support - Connect to various external services and tools via MCP servers
  • A conversation session can continue up to 8 hours (yes, not 8 minutes)
  • Chat UI implementation using Next.js + shadcn

Deployment Instructions

1. Prerequisites

First, prepare an environment capable of running AWS CDK. This environment must meet the following conditions:

  • Required software installed:
    • Node.js
      • v20 or higher recommended
      • Check with node -v command
    • AWS CLI v2
      • Check with aws --version command
    • Docker
      • Check with docker --version command
  • AWS CLI configured with appropriate AWS IAM permissions (Administrator equivalent required)
    • Set up IAM role or enter IAM user information with aws configure command
  • Internet connection with ability to communicate with AWS APIs
    • May not work properly in closed network environments

Any environment that meets the above requirements can be used, including local terminals or EC2 instances. Once you've confirmed these conditions, proceed to the next step.

2. Deployment Parameter Configuration

You can configure deployment parameters by editing cdk.ts.

Configurable parameters include:

  • Deployment region (default: inherits IAM session)
  • Nova Sonic model region (default: us-east-1)
  • Email domains allowed to sign up to Cognito (default: all allowed)

See the file for details.

3. Enable Bedrock Foundation Models

From the Amazon Bedrock Management Console in the bedrockRegion you specified in the step#2 (us-east-1 by default), enable Nova Sonic model.

4. CDK Bootstrap

Next, perform CDK Bootstrap.

Run the following commands:

sh
cd cdk
# Install Node dependencies
npm ci
# Initialize CDK for use in your AWS environment
npx cdk bootstrap

npm ci installs Node dependencies. This is only required for the first run.

cdk bootstrap performs initial setup to enable CDK usage in your environment. This is required when using CDK for the first time in a specific AWS account and region. It's not needed for subsequent runs.

If you see ✅ Environment aws://xxxx/us-east-1 bootstrapped, the bootstrap was successful. Proceed to the next step.

5. CDK Deploy

With CDK deployment preparation complete, run the following command to deploy all necessary CDK stacks:

sh
cd cdk
npx cdk deploy

Deployment typically takes about 5 minutes.

Upon successful deployment, stack output will be displayed as follows:

 ✅  NovaSonicWebappDemoStack

✨  Deployment time: 246.22s

Outputs:
NovaSonicWebappDemoStack.AgentHandlerFunctionName87E3B26A = CdkStack-AgentHandlerF75982B4-sr8j8OF2uqDt
...
NovaSonicWebappDemoStack.ServiceApiEndpointC0AA9658 = https://1234567.execute-api.us-east-1.amazonaws.com

Open the ServiceApiEndpoint* URL in your browser. If a login screen appears, deployment was successful.

This completes CDK deployment. Next, we'll explain how to use the application.

Usage

Sign Up / Login

When you open the URL in a browser, a login button will be displayed. Follow the on-screen instructions to create a Cognito user and log in.

[!IMPORTANT] By default, anyone who knows the URL can register as a user. It's recommended to restrict sign-up eligible email domains in 3. Deployment Parameter Configuration.

After logging in, the following screen will be displayed:

new session

Voice Conversation

Press the Start Voice Chat button to begin a conversation. You can configure the system prompt and voice before starting. Once the conversation begins, speak to it saying "Hello" or similar.

Before starting a conversation, you can customize the following:

  • System Prompt: Adjust Nova Sonic's speaking style and behavior
  • Voice: Select Nova Sonic's voice type. Currently only 3 English voices are selectable, but Nova Sonic itself supports French, Spanish, German, and more languages are planned for the future.

Press the Stop Voice Chat button to end the conversation. The conversation will also automatically end in the following cases:

  1. After more than 10 minutes have passed
  2. When left idle without speaking for several minutes

Viewing Conversation Logs

Click on history in the sidebar to view conversation history. Since long-term memory is included in the system prompt at that time, you can also see how memories change over time.

MCP Support

This agent now supports MCP (Model Context Protocol), enabling integration with various external services and tools. This allows the agent to:

  • Access databases, APIs, and other external data sources
  • Extend capabilities through community-developed MCP servers

Important Notes:

  • Supports MCP servers that can be executed via uvx or npx
  • Tools are executed synchronously, so long-running tools may not be suitable
  • Resource Requirements: MCP functionality may require additional memory and storage. If you encounter resource limitations, you can adjust the Lambda function's memory size (default: 256MB) and ephemeral storage size (default: 512MB) in cdk/lib/constructs/agent.ts

An example mcp config is below:

json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    },
    "DeepWiki": {
      "url": "https://mcp.deepwiki.com/sse",
      "enabled": false
    }
  }
}

Other Notes

  • The app works on mobile devices as well as computers (responsive design).
  • For Nova Sonic details, see agent/README.md

Cost

Assuming 10 minutes/session, the cost per session (USD) is as follows. Note that the dimensions such as token counts per session are examples and will vary depending on your actual use case.

AWS serviceDimensionsCost [USD/session]
Bedrock Nova SonicInput token (speech): 300 tokens/minute0.0102
Bedrock Nova SonicOutput token (speech): 200 tokens/minute0.0272
Bedrock Nova SonicInput token (text): 4000 tokens/session0.00024
Bedrock Nova SonicOutput token (text): 1000 tokens/session0.00024
AppSync EventsRequests: 250 events/session/minute0.0025
AppSync EventsConnection: 10 minutes/session0.00000008
LambdaDuration: 512MB, 10 minutes/session0.004
LambdaRequests: 2 invocations/session0.00000004
API GatewayRequests: 20 requests/session0.00001
DynamoDBRead: 10 RRU/session0.00000125
DynamoDBWrite: 50 WRU/session0.00003125
DynamoDBStorage: 30 kB/session (monthly)0.0000075
TOTAL0.044

Looking only at real-time communication costs (Lambda + AppSync Events), it comes to 0.00045 USD/minute. This is about 1/9th the cost of LiveKit Cloud, showing this is a scalable yet cost-efficient architecture.

Note: Pricing information is based on August 2025 data. Please check the official AWS pricing pages for the most current pricing information.

Resource Cleanup

After completing verification, it's recommended to delete unnecessary resources to prevent additional charges. To delete resources, run the following command:

sh
cd cdk
npx cdk destroy --all

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

Acknowledgement

The code is heavily inspired and copied from Generative AI Use Cases (GenU).

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "aws-samples-sample-serverless-nova-sonic-chat": {
      "command": "",
      "args": []
    }
  }
}

Use 无服务器Nova Sonic聊天应用 MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once 无服务器Nova Sonic聊天应用 is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add 无服务器Nova Sonic聊天应用 as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the 无服务器Nova Sonic聊天应用 MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "aws-samples-sample-serverless-nova-sonic-chat": {
      "command": "npx",
      "args": [
        "-y",
        "sample-serverless-nova-sonic-chat"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the 无服务器Nova Sonic聊天应用 MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the 无服务器Nova Sonic聊天应用 MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use 无服务器Nova Sonic聊天应用 to help me with this task?
无服务器Nova Sonic聊天应用
Sure. I read it.
Here is what I found using 无服务器Nova Sonic聊天应用.

Frequently asked questions

What is the 无服务器Nova Sonic聊天应用 MCP server used for?

无服务器Nova Sonic聊天应用 is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use 无服务器Nova Sonic聊天应用 MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use 无服务器Nova Sonic聊天应用 with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use 无服务器Nova Sonic聊天应用 MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With 无服务器Nova Sonic聊天应用 connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect 无服务器Nova Sonic聊天应用 MCP to TypingMind?

无服务器Nova Sonic聊天应用 runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does 无服务器Nova Sonic聊天应用 MCP provide in TypingMind?

无服务器Nova Sonic聊天应用 exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use 无服务器Nova Sonic聊天应用 MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If 无服务器Nova Sonic聊天应用 requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇