Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XBRL-US MCP Serversearch for companies with 2023 financial data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
XBRL-US MCP Server
A Model Context Protocol (MCP) server that provides secure access to XBRL-US financial data with session-based authentication and state persistence.
Features
Session-Based Authentication: Efficient session management with automatic token reuse
State Persistence: XBRL instances persist across multiple tool calls within the same session
Company Search: Search for companies by fiscal year and retrieve financial facts
Secure Credentials: SHA256-hashed credential validation and secure storage
Tools Available
Search Companies
Search for companies by fiscal year and retrieve financial facts.
Parameters:
year(integer): Fiscal year to search forlimit(optional, default: 10): Maximum number of results to return
Returns: List of financial facts for companies in the specified year
Authentication
This server requires XBRL-US API credentials provided via URL parameters:
Username: Your XBRL-US account username
Password: Your XBRL-US account password
Client ID: Your XBRL-US API client ID
Client Secret: Your XBRL-US API client secret
Configuration Format
Credentials are passed as a base64-encoded JSON object in the config URL parameter:
# Example configuration object (before base64 encoding):
{
"username": "your-xbrl-username",
"password": "your-xbrl-password",
"client_id": "your-client-id",
"client_secret": "your-client-secret"
}Installation & Setup
Prerequisites
Python 3.13+
XBRL-US API account and credentials
uv (for dependency management)
Local Development
Clone the repository:
git clone <repository-url>
cd xbrl-us-mcpInstall dependencies:
uv syncRun the server:
uv run playgroundThe server will start on port 8081 by default and open smithery.ai playground
Usage Example
Search for Companies in 2023
Tool: search_companies
Parameters: {"year": 2023, "limit": 10}This will return financial facts for companies with data available for fiscal year 2023.
Architecture
Session Management
The server implements sophisticated session management:
FastMCP Session IDs: Uses FastMCP's built-in session identification
Session-Scoped Storage: XBRL instances persist across requests within the same session
Automatic Token Reuse: Reuses valid XBRL authentication tokens to improve performance
Credential Validation: SHA256 hashing ensures secure credential comparison
Token Expiration: Automatically handles expired tokens and re-authenticates when needed
Project Structure
xbrl-us-mcp/
├── src/
│ ├── index.py # Main FastMCP server
│ └── funcs/
│ ├── __init__.py
│ └── middleware.py # Session authentication middleware
├── smithery.yaml # Deployment configuration
├── pyproject.toml # Python dependencies
└── README.md # This fileSession Persistence Benefits
Performance: Eliminates redundant authentication calls
Efficiency: Reuses XBRL instances across multiple tool calls
Reliability: Handles token expiration gracefully
Security: Secure credential hashing and validation
Expected Behavior
First Request in Session:
New XBRL instance created for session abc123...: token...Subsequent Requests in Same Session:
Reusing valid XBRL session for abc123...
Reusing XBRL instance: token...Error Handling
The server provides detailed error messages for:
Missing or invalid credentials
Authentication failures
Token expiration
Network connectivity issues
Invalid search parameters
Security Features
Credential Hashing: SHA256 hashing of credentials for secure comparison
Session Isolation: Each session maintains independent authentication state
Token Validation: Automatic validation of XBRL token expiration
Secure Storage: Credentials are never stored in plain text
Contributing
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
License
This project is licensed under the MIT License.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.