---
title: ContextVM
description: The intersection of Nostr and MCP
template: splash
hero:
tagline: The intersection of Nostr and MCP
image:
file: ../../assets/contextvm-logo.svg
actions:
- text: Get Started
link: getting-started/quick-overview/
icon: right-arrow
attrs:
class: hero-get-started-cta
- text: View on GitHub
link: https://github.com/contextvm/ts-sdk
icon: external
variant: minimal
- text: Visit the Website
link: https://contextvm.org
icon: external
variant: minimal
---
import { CardGrid } from '@astrojs/starlight/components';
import IconLinkCard from '../../components/IconLinkCard.astro';
import HeroGetStartedCTAStyles from '../../components/HeroGetStartedCTAStyles.astro';
<HeroGetStartedCTAStyles />
## Core Concepts
<CardGrid stagger>
<IconLinkCard
title="Architecture"
icon="rocket"
href="https://github.com/ContextVM/contextvm-docs/blob/master/src/content/docs/spec/ctxvm-draft-spec.md#complete-protocol-flow"
description="Learn the foundational concepts and architecture of ContextVM"
target="_blank"
/>
<IconLinkCard
title="SDK Documentation"
icon="add-document"
href="ts-sdk/quick-overview/"
description="Explore our comprehensive documentation and implementation examples"
target="_blank"
/>
<IconLinkCard
title="Integrations"
icon="puzzle"
href="ts-sdk/gateway/overview/#integration-scenarios"
description="Discover how ContextVM integrates MCP with Nostr"
target="_blank"
/>
<IconLinkCard
title="Tutorials"
icon="open-book"
href="ts-sdk/tutorials/client-server-communication/"
description="Step-by-step guides to help you build with ContextVM"
target="_blank"
/>
<IconLinkCard
title="Payments"
icon="nostr"
href="ts-sdk/payments/overview/"
description="Add CEP-8 payments to servers and clients with Lightning, NWC, and custom rails"
target="_blank"
/>
<IconLinkCard
title="CVMI CLI"
icon="laptop"
href="cvmi/overview/"
description="Use the CVMI CLI tool - the swiss army knife for ContextVM development"
target="_self"
/>
</CardGrid>
<style is:global>{`
@layer starlight.components {
.hero .actions .sl-link-button.minimal {
color: var(--sl-color-white);
text-decoration: none;
text-underline-offset: 0.2em;
transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.hero .actions .sl-link-button.minimal svg {
transition: transform 0.2s ease;
}
.hero .actions .sl-link-button.minimal:hover,
.hero .actions .sl-link-button.minimal:focus-visible {
color: #c084fc;
text-decoration: underline;
text-decoration-color: currentColor;
}
.hero .actions .sl-link-button.minimal:hover svg,
.hero .actions .sl-link-button.minimal:focus-visible svg {
transform: translateX(0.2rem);
}
.hero .actions .sl-link-button.minimal + .sl-link-button.minimal {
margin-inline-start: 0.75rem;
}
@media (max-width: 50rem) {
.hero .actions .sl-link-button.minimal + .sl-link-button.minimal {
margin-inline-start: 1rem;
}
}
}
`}</style>