We’ve put together a starter repo that shows just how easy it is to build your own Model Context Protocol (MCP) app. It comes with everything you need — a working MCP server (in both Node and Python), and a simple web UI that connects right to it.
Using FastMCP, you can spin it up locally and start adding your own tools in minutes. All you have to do is write one function, and you’ve created a working AI tool.
This hackfest is all about learning by doing:
- See how AI tools plug into real applications
- Experiment with adding your own functions
- Get a feel for how MCP makes it simple to connect data, code, and AI models
Whether you’re curious about AI or already deep in it, this is a fun way to explore how everything fits together. Bring your laptop, your ideas, and let’s build some AI magic together.
This section outlines the technology we've configured for you.
This section has all the steps to run the example template and see all the required technology in action. You don’t have to use it—it’s for inspiration or guidance.
Use the fork option in the left-hand panel of the Bitbucket UI to create a copy of the repository for your own project.
Clone the forked repository to your local environment (replacing the URL below with your fork URL):
git clone ssh://[email protected]:7999/ea/hackfest-25.4.git
https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-envvars.html
This project requires AWS Bedrock for minimal tool orchestration from the UI, in order to use that service you'll need to configure keys to an AWS account with necessary permissions.
Ensure region is set to us-east-1
If you have existing access to an EDC AWS account, you can assume role into the account where we are providing access to AWS Bedrock. To do this, use the normal method to get keys from kion and then run the following in your terminal:
export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" \
$(aws sts assume-role \
--role-arn arn:aws:iam::325592785603:role/hackfest-25.4-bedrock \
--role-session-name $(whoami) \
--query "Credentials.[AccessKeyId,SecretAccessKey,SessionToken]" \
--output text))After running this command, your terminal will be logged in to the "dev15" EDC account rather than the account you started with, and will have access ONLY to the Bedrock models and actions required for this project. Ensure the same terminal is used to start the agent in step 4️⃣. The assumed credentials will be good for 12 hours and then will need to be refreshed, starting with your own AWS credentials then running the above command again.
If you do not have access to an EDC AWS account, fear not! Contact Timothy Goff with your NASA AUID and we will provide you with a Bedrock API key. This key will need to be stored in an environment variable in your terminal before you start the agent in step 4️⃣ as shown below:
export AWS_BEARER_TOKEN_BEDROCK=<TOKEN VALUE>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashcd mcp/fastmcp-node
nvm usenpm installnpm run devuv is a Python package and project manager. It can be installed via a few methods, however using homebrew may work best on NASA-managed machines.
brew install uv
Alternative installation options are also available in the documentation, including:
curl -LsSf https://astral.sh/uv/install.sh | sh
cd mcp/fastmcp-python
uv venv
source .venv/bin/activate
uv sync
uv run server.pycurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashcd agent
nvm usenpm installnpm run devIf you get an error Cannot find module @rollup/rollup-darwin-arm64. run rm -rf package-lock.json node_modules the rerun the npm install and npm run dev above
