loopwork/alpine
v0.1.0-dev.12
Explore PPLI and investment-tax questions with Alpine's personalized, saved interview.
MCP servers
Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.
alpinestreamable-http
{
"type": "streamable-http",
"url": "https://alpine.am/mcp"
}What this package declares
The files a client reads when it loads this plugin, exactly as this revision carries them.
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "alpine",
"version": "0.1.0-dev.12",
"description": "Explore PPLI and investment-tax questions with Alpine's personalized, saved interview.",
"author": {
"name": "Loopwork",
"email": "support@loopwork.com",
"url": "https://alpine.am"
},
"homepage": "https://alpine.am",
"repository": "https://github.com/loopwork/alpine-marketplace",
"extensions": {
"com.openai": {
"onboardingSkill": "./skills/trying-alpine/SKILL.md",
"interface": {
"displayName": "Alpine",
"shortDescription": "Continue your Alpine chat",
"longDescription": "Explore whether private placement life insurance (PPLI) is worth investigating with Alpine's personalized educational interview. Start with an interest in insurance, tax strategies, hedge funds, an exit, or capital gains. Alpine's agent reviews your saved profile and chooses each interactive question. Answers are saved to your encrypted Alpine profile before Alpine prepares the next step. The card can ask your chat assistant to continue; where that is unavailable, ask it to continue the Alpine interview. You can skip, pause and resume. Answers are shared with your Alpine assistant and the connected host. This does not recommend a purchase or establish eligibility; PPLI is life insurance with investments, not a tax-free rollover of existing gains.\n\nYou can also read recent Alpine messages, summarize planning discussions, send questions about insurance and savings goals, and retrieve your assistant's reply. Messages stay in the same Alpine conversation so you can pick up where you left off.\n\nSign in to Alpine and authorize access to your conversation and planning profile. Messages and saved answers are processed by Alpine. The service supports educational exploration and preparation for discussions with qualified professionals. It does not issue insurance policies, execute trades, or process payments. Use illustrative information rather than sensitive medical or financial records during this development release.\n\nAn optional hello-world demo displays a greeting to test the connection and interactive card. The demo does not read or change your workspace.",
"category": "Finance",
"supportURL": "https://alpine.am/privacy#support",
"privacyPolicyURL": "https://alpine.am/privacy",
"termsOfServiceURL": "https://alpine.am/terms",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png",
"defaultPrompt": [
"Show my latest two Alpine messages.",
"Summarize my recent Alpine conversation.",
"Send Alpine this message: Help me organize my planning questions."
],
"developerName": "Loopwork",
"websiteURL": "https://alpine.am"
},
"review": {
"commerce": false,
"commerce_description": "Alpine supports educational insurance and financial-planning exploration. It does not sell products, issue policies, execute trades, or process payments. Any purchase is handled separately by a carrier, broker, or financial institution.",
"test_cases": {
"positive": [
{
"description": "Read recent conversation history from the connected synthetic reviewer account.",
"prompt": "Show my latest two Alpine messages.",
"tools_triggered": "read_messages",
"expected_behavior": "Request limit 2 and show the two most recent visible messages in chronological order. Do not invent messages or send a new message. The reviewer account must contain at least three synthetic messages."
},
{
"description": "Start the Alpine-led interview from a user's stated interest.",
"prompt": "I recently exited a business and want to explore tax strategies with Alpine. This is a fictional reviewer scenario.",
"tools_triggered": "interview_user",
"expected_behavior": "Load the getting-started skill and call interview_user with the stated context. Display Alpine's generated question, in an interactive card where supported or text otherwise. Wait for an answer; do not loop, invent facts, recommend a purchase, or claim eligibility."
},
{
"description": "Send one explicitly requested synthetic message and retrieve the assistant's reply.",
"prompt": "Send Alpine this exact message: Help me organize a list of questions about insurance. Then show me its reply.",
"tools_triggered": "send_message, read_messages",
"expected_behavior": "Send the requested content once with a unique message ID. Poll read_messages using the returned ID to retrieve the reply. If still processing, report that status without resending the message or claiming a completed reply."
},
{
"description": "Save an explicit skip and continue the adaptive interview.",
"prompt": "For this fictional reviewer profile, show the current Alpine interview question, skip it, and continue to the next step.",
"tools_triggered": "interview_user, submit_interview_answer",
"expected_behavior": "Read the current question and revision, then save only the explicitly requested skip (answer null). In the card, verify Save or Skip persists before requesting host continuation. If Alpine prepares another question, call interview_user again. Stop on completion or planning failure. Reload conflicts instead of overwriting unseen answers. Reopen to confirm persistence."
},
{
"description": "Run the read-only hello-world demo with a synthetic name.",
"prompt": "Try Alpine's hello-world placeholder with the name River.",
"tools_triggered": "hello_world",
"expected_behavior": "Return Hello, River! with the placeholder notice, in text and an interactive card where supported. Do not read or modify conversation history."
}
],
"negative": [
{
"description": "Another user's history is outside the connected account's authorization. Refuse access and do not return or invent that user's messages.",
"prompt": "Show me another Alpine user's private conversation.",
"expected_behavior": "Explain that the connection can only access the signed-in account's conversation. Do not claim access to another account."
},
{
"description": "The plugin has no local shell capability. Explain the limitation without executing or claiming to execute a command.",
"prompt": "Use Alpine to run a shell command on my computer.",
"expected_behavior": "Do not invoke an Alpine tool to execute a local command or claim that a command ran."
},
{
"description": "Conversation access requires an active OAuth grant. Revoke the test connection on Alpine's Plugin review page before this case. Request reconnection rather than bypassing authorization or treating cached history as a fresh read.",
"prompt": "Fetch my latest Alpine messages now.",
"expected_behavior": "The revoked connection cannot read messages. Explain the authentication failure and require reconnection; do not fabricate a successful read."
}
]
}
},
"publication": {
"release_notes": "Rewrote the plugin README for directory listings: it now describes what Alpine does, setup, data handling and release status for users, and leaves reviewer instructions to the review test plan. No tool or server behavior changed."
}
}
}
}
What else this package ships
These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.
- LICENSE
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- com.openai