Token导航 LogoToken导航TokenDH.com
Moedim Edgar logo
金融服务未说明官方级别未说明来源级核验

Moedim Edgar

MCP Server

Moedim.Edgar是一个C# .NET库,用于访问美国证券交易委员会的EDGAR数据库,支持现代异步/等待模式和依赖注入。

工具数

4

提示词数

0

GitHub Stars

2

资源数

0
金融数据C#数据分析

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kdcllc

提供方

kdcllc

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

莫迪。埃德加

CNET库,用于访问安全交换委员会的EDGAR数据库,具有现代异步/等待模式和依赖注入支持。

![Build Status](https://github.com/kdcllc/Moedim.Edgar/actions) ![NuGet](https://www.nuget.org/packages/Moedim.Edgar) ![License](LICENSE)

Stand With Israel

“Moedim”是一个希伯来语单词,翻译为“盛宴”或“约定时间” “指定时间”是指《Vayikra》/《利未记》第23章中的哈闪节。 这些节日是“信号和标志”,帮助我们了解哈希姆的内心。

特性

  • 现代HTTP客户端 -使用IHttpClientFactory进行高效可靠的HTTP通信
  • 依赖注入 -对微软的一流支持。扩展。依赖注入
  • 类型安全模型 -SEC EDGAR数据结构的强类型模型
  • 异步/等待 -整个API完全异步
  • 重试逻辑 -内置重试机制,用于处理速率限制和瞬态故障
  • 可配置的 -用于自定义行为的灵活选项模式
  • 有据可查 -所有公共API的全面XML文档
  • 多框架支持 -目标。净值8.0
  • 📄 文献检索 -以干净的Markdown或HTML格式下载完整的SEC文件
  • ✂️ 智能断面提取 -从文件中解析和提取特定部分(风险因素、MD&A等)
  • 🔍 章节预览 -在下载完整内容之前浏览归档部分
  • 💾 内置缓存 -自动缓存以减少API调用并提高性能
  • 🤖 MCP服务器 -用于LLM集成的模型上下文协议服务器(包含在Moedim.Edgar.Mcp包中)

雇用我

请发送 电子邮件 如果你考虑 雇用我.

![buymeacoffee](https://www.buymeacoffee.com/vyve0og)

给一颗星!:星:

如果你喜欢或正在使用这个项目来学习或开始你的解决方案,请给它一颗星。谢谢!

安装

dotnet add package Moedim.Edgar

用于AI集成的MCP服务器

对于通过模型上下文协议(MCP)集成AI助手,请安装配套的MCP服务器包:

# Install via dnx (recommended)
dnx Moedim.Edgar.Mcp --version 1.0.0 --yes

MCP服务器提供:

  • 17工具 用于访问SEC EDGAR数据(公司事实、文件搜索、文件检索、章节提取)
  • 6个引导提示 用于结构化分析工作流程(公司评估、同行比较、变更跟踪等)

src/Moedim。埃德加。Mcp/README.md 获取完整文档。

快速开始

1.配置服务

using Moedim.Edgar.Extensions;

services.AddSecEdgar(options =>
{
    options.AppName = "YourCompany";
    options.AppVersion = "1.0.0";
    options.Email = "your@email.com";
    options.RequestDelay = TimeSpan.FromMilliseconds(100);
    options.MaxRetryCount = 3;
});

2.使用服务

using Moedim.Edgar.Models;

public class FinancialDataService
{
    private readonly ICompanyFactsService _companyFactsService;
    private readonly ICompanyConceptService _companyConceptService;

    public FinancialDataService(
        ICompanyFactsService companyFactsService,
        ICompanyConceptService companyConceptService)
    {
        _companyFactsService = companyFactsService;
        _companyConceptService = companyConceptService;
    }

    public async Task GetCompanyFactsAsync(int cik)
    {
        return await _companyFactsService.QueryAsync(cik);
    }

    public async Task GetRevenueDataAsync(int cik)
    {
        return await _companyConceptService.QueryAsync(cik, "Revenues");
    }
}

使用示例

检索公司事实

// Get all facts for a company (e.g., Apple Inc. - CIK: 320193)
var facts = await companyFactsService.QueryAsync(320193);

// Access company information
Console.WriteLine($"Company: {facts.EntityName}");
Console.WriteLine($"CIK: {facts.Cik}");

// Iterate through facts
foreach (var fact in facts.Facts)
{
    Console.WriteLine($"Concept: {fact.Label}");
    Console.WriteLine($"Value: {fact.Value}");
}

查询特定概念

// Get specific financial concept (e.g., Revenues)
var revenues = await companyConceptService.QueryAsync(320193, "Revenues");

// Access data points
foreach (var dataPoint in revenues.DataPoints)
{
    Console.WriteLine($"Period: {dataPoint.FiscalPeriod}");
    Console.WriteLine($"Value: {dataPoint.Value:C}");
    Console.WriteLine($"Filed: {dataPoint.Filed:d}");
}

下载归档文件(新)

// Get complete filing as clean Markdown
var markdown = await filingDetailsService.GetFilingDocumentAsync(
    accessionNumber: "0000320193-23-000077",
    tickerOrCik: "AAPL",
    format: "markdown"
);

// Or get as HTML
var html = await filingDetailsService.GetFilingDocumentAsync(
    accessionNumber: "0000320193-23-000077",
    format: "html"
);

提取特定章节(新增)

// First, preview available sections
var previewRequest = new FilingSectionsRequest { PreviewOnly = true };
var preview = await filingDetailsService.GetFilingSectionsAsync(
    accessionNumber: "0000320193-23-000077",
    request: previewRequest
);

// Display available sections
foreach (var section in preview.Preview)
{
    Console.WriteLine($"{section.AnchorTargetId}: {section.Label}");
}

// Then, get specific sections
var sectionsRequest = new FilingSectionsRequest
{
    PreviewOnly = false,
    AnchorIds = new[] { "item_1a_risk_factors", "item_7_managements_discussion_analysis" },
    Merge = true, // Combine sections into single content
    Format = "markdown"
};

var result = await filingDetailsService.GetFilingSectionsAsync(
    accessionNumber: "0000320193-23-000077",
    request: sectionsRequest
);

Console.WriteLine(result.MergedContent); // Clean markdown of selected sections

配置选项

services.AddSecEdgar(options =>
{
    // Required: SEC requires identification
    options.AppName = "YourCompany";
    options.AppVersion = "1.0.0";
    options.Email = "your@email.com";

    // Optional: Delay between requests (default: 250ms)
    options.RequestDelay = TimeSpan.FromMilliseconds(100);

    // Optional: Delay after rate limit hit (default: 2 seconds)
    options.TimeoutDelay = TimeSpan.FromSeconds(1);

    // Optional: Maximum retry attempts (default: 10)
    options.MaxRetryCount = 3;

    // Optional: Override retry behavior (defaults shown)
    options.RetryCountOverride = 5; // total attempts including the initial call
    options.RetryDelay = TimeSpan.FromSeconds(1); // fallback when no Retry-After header is returned
    options.UseExponentialBackoff = true; // multiply delay after each retry
    options.RetryBackoffMultiplier = 1.5; // growth factor for exponential strategy
});

需求

  • .NET 8.0或更高版本
  • C#11或更高版本(用于消费项目)
  • Visual Studio 2022或Rider(为了获得最佳的IDE支持)

项目结构

  • 莫迪。埃德加 -包含服务、模型和扩展的核心库

- Services/ -SEC EDGAR客户端和服务实施 - Models/ -数据模型和查询类型 - Extensions/ -依赖注入扩展

  • 莫迪。埃德加。模型上下文协议(Model Context Protocol) -用于AI辅助集成的模型上下文协议服务器

- Tools/ -MCP工具实施(17个工具) - Prompts/ -引导式分析工作流程(6个提示) - 看 src/Moedim。埃德加。Mcp/README.md 详情

API 文档

核心服务

  • ISecEdgarClient -SEC EDGAR API的低级HTTP客户端
  • ICompanyFactsService -检索所有公司事实的服务
  • ICompany一次性服务 -查询特定财务概念的服务
  • ICompany查询服务 -从股票代码查找公司CIK的服务
  • IEdgar搜索服务 -公司档案检索服务
  • IEdgar最新归档服务 -检索最新文件的服务
  • IFiling详细信息服务 -检索归档详细信息、文件和部分的服务
  • ICacheService -用于缓存SEC EDGAR数据的服务(实现为LocalFileCache)

新功能(v1.1.0)

文献检索

IFilingDetailsService 现在支持下载Markdown或HTML格式的完整归档文档:

Task GetFilingDocumentAsync(
    string accessionNumber,
    string? tickerOrCik = null,
    string? format = null,
    CancellationToken cancellationToken = default);
  • 访问编号:美国证券交易委员会登录号(例如“0000320193-23-0000077”)
  • 滴答声:可选股票代码或CIK,以帮助定位文件
  • 格式:“markdown”(默认)或“html”
  • 退货:按照要求的格式完成归档内容

剖面提取

使用两步工作流程从文件中提取特定部分:

第一步:预览章节

Task GetFilingSectionsAsync(
    string accessionNumber,
    FilingSectionsRequest request,
    string? tickerOrCik = null,
    CancellationToken cancellationToken = default);

随着 request.PreviewOnly = true,返回没有完整内容的节ID和标题。

第二步:获取完整章节 随着 request.PreviewOnly = false 和具体 request.AnchorIds,返回所选部分的全部内容。

归档部分请求属性:

  • PreviewOnly -仅返回节元数据
  • AnchorIds -要检索的节ID列表
  • Format -“markdown”(默认)或“html”
  • Merge -将所有部分合并到单个内容块中

缓存

内置缓存减少了API调用并提高了性能:

  • 自动缓存归档文件(24小时)
  • 缓存段解析结果
  • 默认情况下基于本地文件的缓存
  • 缓存目录: .edgar_cache 在临时文件夹中

数据模型

  • 公司概况查询 -所有公司事实的容器
  • 公司概念查询 -特定概念数据的容器
  • 事实 -带有标签、值和元数据的个人事实
  • 事实数据点 -事实的时间序列数据点
  • 会计期间 -会计期间的计数(Q1、Q2、Q3、Q4、FY)

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

内置:

版本历史记录

更改日志.md 查看版本历史和发行说明。

资源

目录标签

目录标签

金融数据C#数据分析SECEDGAR本地部署C#库异步编程依赖注入

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP