Skip to main content
Glama
gitcasino

wealvest-ai

๐Ÿ’ฐ WealVest AI

AI-powered financial analysis platform built with NitroStack MCP.

WealVest AI demonstrates how the Model Context Protocol (MCP) can power modular AI-driven financial tools for investment analysis, risk assessment, market intelligence, and report generation.

Project Status: ๐Ÿšง MVP Complete | Website Integration In Progress


๐Ÿ“– Overview

WealVest AI is an experimental financial intelligence platform built for the NitroStack MCP Hackathon.

The project exposes financial capabilities as MCP tools that can be executed from NitroStudio, showcasing how AI-powered financial workflows can be implemented using modular MCP architecture.

Current capabilities include:

  • ๐Ÿ“Š Portfolio Analysis

  • โš ๏ธ Risk Assessment

  • ๐Ÿ“ˆ Investment Simulation

  • ๐ŸŒ Market Intelligence

  • ๐Ÿ“„ Financial Report Generation


๐Ÿ›  Tech Stack

Related MCP server: QuantClaw Data

Frontend

  • React

  • TypeScript

  • Tailwind CSS

  • Vite

Backend

  • Node.js

  • NitroStack MCP

Development Tools

  • NitroStudio

  • TypeScript

  • npm


โœ… Current Status

Successfully Implemented

๐Ÿ“Š Portfolio Analyzer

  • Portfolio analysis workflow

  • Financial input validation

  • MCP Tool implementation

  • Widget integration

  • Portfolio insights


โš ๏ธ Risk Assessment

  • Risk profile analysis

  • Financial scoring

  • Risk recommendations

  • MCP integration


๐Ÿ“ˆ Investment Simulator

  • Investment projection

  • Return estimation

  • Future value calculation

  • Financial simulations


๐ŸŒ Market Intelligence

  • Market trend analysis

  • Industry insights

  • AI-assisted summaries


๐Ÿ“„ Report Generator

  • Financial report generation

  • Structured summaries

  • Recommendation reports


๐Ÿ”Œ MCP Integration

  • MCP Server

  • Tool Registration

  • Widget Registration

  • NitroStudio Integration

  • Modular Architecture


โœ… Working Features

Feature

Status

React Frontend

โœ…

Tailwind UI

โœ…

MCP Server

โœ…

Portfolio Analyzer

โœ…

Risk Assessment

โœ…

Investment Simulator

โœ…

Market Intelligence

โœ…

Report Generator

โœ…

NitroStudio Integration

โœ…

Widget Rendering

โœ…

Financial Tool Execution (NitroStudio)

โœ…


๐Ÿšง Currently Under Development

The following functionality is not yet implemented:

  • Website โ†” MCP communication

  • Backend API integration

  • Direct tool execution from the website

  • Persistent user accounts

  • Database integration

  • Authentication

  • Real-time financial data

  • Production deployment


๐Ÿ— Architecture

                React Website
                      โ”‚
                      โ”‚
          (UI Components Only)
                      โ”‚
                      โ–ผ
            NitroStudio (MCP Client)
                      โ”‚
                      โ–ผ
           NitroStack MCP Server
                      โ”‚
      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
      โ”‚               โ”‚               โ”‚
      โ–ผ               โ–ผ               โ–ผ
 Portfolio       Risk Assessment   Investment Simulator

                      โ”‚
                      โ–ผ
           Market Intelligence

                      โ”‚
                      โ–ผ
             Report Generator

โš ๏ธ Current Limitation

At present, the financial tools are executed through NitroStudio, which acts as the MCP client.

The React website currently provides the frontend interface but does not yet communicate with the MCP server.

This means:

  • โœ… MCP tools work inside NitroStudio.

  • โœ… Widgets render correctly in NitroStudio.

  • โŒ The website cannot yet invoke MCP tools directly.

Backend integration between the website and the MCP server is planned for a future update.


๐Ÿš€ Future Roadmap

Phase 1 โœ… (Completed)

  • MCP server

  • Financial tools

  • NitroStudio integration

  • Widget implementation

  • Modular architecture


Phase 2 ๐Ÿšง

  • Backend API

  • Website โ†” MCP integration

  • Live financial analysis from the website

  • User authentication

  • Portfolio persistence

  • Database support


Phase 3 ๐Ÿ”ฎ

  • AI investment recommendations

  • Portfolio optimization

  • Historical tracking

  • PDF report export

  • Cloud deployment

  • Multi-user collaboration

  • Real-time market APIs


โ–ถ๏ธ Getting Started

Clone the repository:

git clone https://github.com/rhll07/wealvest-ai.git

Move into the project:

cd wealvest-ai

Install dependencies:

npm install

Run the development server:

npm run dev

๐Ÿงช Demo

Current demonstrations are performed through NitroStudio, where all implemented MCP tools can be executed and tested.

Available demo tools:

  • ๐Ÿ“Š Portfolio Analyzer

  • โš ๏ธ Risk Assessment

  • ๐Ÿ“ˆ Investment Simulator

  • ๐ŸŒ Market Intelligence

  • ๐Ÿ“„ Report Generator


๐Ÿค Contributing

Contributions, feature suggestions, and bug reports are always welcome.

  1. Fork the repository

  2. Create a feature branch

  3. Commit your changes

  4. Open a Pull Request


๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿ‘จโ€๐Ÿ’ป Author

Rahul Krishna R

If you found this project helpful or interesting, consider giving it a โญ on GitHub!

Available Tools

5 tools
analyze_portfolioC

Analyze an investment portfolio based on investor profile and financial goals.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageYesInvestor age
financialGoalYesPrimary financial goal (e.g., Retirement, Buying a Home)
monthlyIncomeYesMonthly income
riskToleranceYesRisk tolerance
currentSavingsYesCurrent savings
investmentHorizonYesInvestment horizon in years
monthlyInvestmentYesAmount invested every month

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'analyze', loosely implying a read-only operation, but does not disclose output format, limitations, side effects, or any behavioral specifics. With 7 inputs and no output schema, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence, front-loading the verb and avoiding redundancy. It is efficiently structured, but the brevity sacrifices depth; however, the dimension rewards lack of fluff, so a moderately high score is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 required parameters, no output schema, and no annotations, the description is insufficient. It does not clarify the nature of the analysis result, expected output structure, or any prerequisites/limitations. The description is too sparse for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds a high-level framing ('investor profile and financial goals') but does not provide any additional param-specific meaning beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('analyze') and resource ('investment portfolio'), and mentions the basis ('investor profile and financial goals'). It distinguishes from siblings like assess_risk (focused on risk) and simulate_investment (simulation), though 'analyze' is somewhat generic and doesn't specify the kind of analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. There is no mention of exclusions or comparison to sibling tools like assess_risk or generate_report. The context is only implied through the phrase 'based on investor profile and financial goals', which is not enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_riskB

Evaluate the risk profile of an investment portfolio based on asset allocation and concentration.

ParametersJSON Schema
NameRequiredDescriptionDefault
holdingsYesList of portfolio holdings

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for behavioral disclosure. It states the analytical basis ('asset allocation and concentration') but does not mention whether this is a read-only operation, what the output format is, or any limitations such as requiring complete holdings. This leaves the agent under-informed about invocation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant wording. It states the verb, object, and basis efficiently, which is appropriate for a tool with a single well-documented parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is complete for the single parameter, but there is no output schema and no annotations, so the description must explain return values and behavior. It does not describe what the 'risk profile' output looks like or address the overlap with sibling tools, making it minimally adequate rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the 'holdings' parameter and its sub-fields with descriptions, so the baseline is 3. The description adds the concepts of 'asset allocation and concentration' as the analytical lens, but it does not explain how the input maps to these measures or provide further parameter-level detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Evaluate') and identifies a clear resource ('risk profile of an investment portfolio') with the basis of evaluation ('asset allocation and concentration'). It is clear and specific, but it does not differentiate from the sibling 'analyze_portfolio', which could overlap in purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives like 'analyze_portfolio' or 'simulate_investment'. The use case is only implied by the verb and inputs, with no exclusions or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_reportB

Generate a structured wealth analysis report (PDF/JSON/Markdown).

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoStructured data to include in the report
formatNoFormat of the generated reportJSON
projectIdYesProject ID for which to generate the report
reportTypeYesType of report

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It mentions output formats but does not disclose side effects, required permissions, whether input data is mandatory, or any limitations. The description adds minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, using a single sentence to state the tool's purpose and output formats. Every word is meaningful, with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is moderately complex (4 parameters, 2 required, enums), but the description is sparse. There is no output schema or annotations, so the description should explain what the report contains, how 'data' is used, or what 'structured' means. It fails to provide this context, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning to parameters; it only mentions formats, which are already enumerated in the schema. The schema itself fully documents all parameters, so this score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: generating a structured wealth analysis report in PDF, JSON, or Markdown. This specific verb+resource combination distinguishes it from sibling analysis tools (e.g., analyze_portfolio, assess_risk), which focus on analysis rather than report generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or the relationship to sibling tools. Users must infer that it is for report generation after analysis, but no explicit context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_insightsB

Retrieve latest market insights and financial headlines.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of headlines to retrieve
categoryNoNews categoryMarkets

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It indicates 'retrieve' implying a read-only operation, but it doesn't disclose any side effects, rate limits, response format, or data source. The description is minimal and doesn't enrich the agent's understanding beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence. It's front-loaded with the action verb and contains no unnecessary words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with two optional parameters and no output schema. The description gives a basic idea of what it does, but it doesn't explain the return structure or how the data might be used. Given the lack of annotations and output schema, the description could be more informative to enable effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (limit and category) with 100% coverage. The description adds no additional meaning about how the parameters affect results, such as how category filters headlines or what limit controls. Since schema coverage is high, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Retrieve') and resource ('latest market insights and financial headlines'). It distinguishes from sibling tools like analyze_portfolio or generate_report, which focus on analysis/reporting rather than retrieval. However, it doesn't explicitly differentiate itself, so it's not perfect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or scenarios where other tools would be more appropriate. The description simply states the function without context, leaving the agent to infer its use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_investmentB

Simulate the growth of SIP or lump-sum investments over time with deterministic financial calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationYesDuration of investment in years
monthlySIPYesMonthly SIP amount
expectedReturnYesExpected annual return rate (percentage)
inflationAdjustedNoWhether to adjust results for inflation
initialInvestmentYesInitial lump-sum investment amount

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'deterministic financial calculations' but does not disclose what the output format is (e.g., future value, schedule), any underlying assumptions (e.g., compounding frequency), or limitations. This is a significant gap for a simulation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is appropriately concise and front-loaded with the verb 'Simulate'. It avoids repetition of schema details and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a well-documented schema, the description fails to provide essential context about the tool's output or behavior. There is no output schema, and the description does not mention what the simulation returns (e.g., final corpus, year-wise breakdown) or any edge cases. For a non-trivial financial tool, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides complete descriptions for all parameters (100% coverage), so the baseline is 3. The description adds no additional meaning beyond referencing 'SIP or lump-sum', which maps to monthlySIP and initialInvestment already documented in the schema. It does not enrich parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Simulate') and resource ('the growth of SIP or lump-sum investments'). It distinguishes itself from siblings like analyze_portfolio and assess_risk by focusing on simulation rather than analysis or risk assessment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for simulating investment growth but does not explicitly state when to use it versus alternatives or when not to use it. No exclusions or comparisons to sibling tools are provided, leaving usage guidance at an implied level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedanalyze_portfolio
    • First observedassess_risk
    • First observedgenerate_report
    • First observedget_market_insights
    • First observedsimulate_investment

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct aspect of wealth analysis: portfolio analysis, risk assessment, simulation, market insights, and report generation. The descriptions clarify the overlap between analyze_portfolio and assess_risk, making them distinguishable by focus.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as 'analyze_portfolio' and 'generate_report'. This creates a predictable and readable naming convention throughout.

Tool Count5/5

With only 5 tools, the server is well-scoped for its purpose. Each tool provides a distinct and necessary function for wealth analysis without redundancy or missing core capabilities.

Completeness4/5

The set covers the core workflow of portfolio analysis, risk evaluation, investment simulation, market context, and report generation. Minor gaps such as portfolio modification or personalized recommendations exist but are likely outside the intended scope.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables quantitative trading analysis with 12 tools for real-time market data, 28+ technical indicators, FinBERT-powered news sentiment analysis, and automated trading signal generation for stocks and forex.
    1
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides access to a comprehensive financial intelligence platform featuring real-time market data, quantitative models, and alternative data sources. It enables users to perform advanced financial analysis including options analytics, portfolio modeling, and SEC filing research.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language portfolio monitoring, risk analysis, and compliance checking with tools for real-time portfolio status, risk metrics, anomaly detection, SEC filings search, market KPIs, and compliance validation.
    MIT